使用PHP折扣

时间:2013-08-20 15:33:03

标签: html php percentage discount

我一直收到这个错误:

  

致命错误:第34行上不支持的操作数类型

而且我不确定如何修复它,我试图让它变成输入表格的数字,如10,将是折扣,它将回应折扣价,任何人都可以帮助我解决这个问题,这是代码

<!DOCTYPE html>
<html>
<head>
<title> Car Shop Cars! </title>
<link rel="stylesheet" type="css/text" href="style.css" 
</head>

<body>

<div id="header"> 
</div>

<div id="carpic">
</div>

<div id="price">
<center> This is the Nissan 350z and costs 8,999,999 <br>
please enter your promo code </center>
</div>

<div id="form">
<form action="index.php" method="post">

   <center> <input type="text" name="percent" id="percent" />
  <input type="submit"  /> </center>

</form> 
<?php
        $percent=$_POST['percent'];
    $total=['8,999,999'];

    /*calculation for discounted price */ 

    $discount_value= ($total / 100) *$percent;

    $final_price = $total - $discount_value;

    echo $final_price;

?> 
</div>

</body> 
</html>

5 个答案:

答案 0 :(得分:3)

这是无效的

$total=['8,999,999'];

我猜你的意思是这样的

$total = 8999999;

答案 1 :(得分:1)

看看你的代码:

$discount_value = ($total / 100) * $percent;
                          ^
                          |

更具体地来说:

$total / 100
       ^
       |

如果你输入$total的值,你只需设置之前的行;

$total = ['8,999,999'];

它将创建此操作:

['8,999,999'] / 100

这意味着你想要将数组除以100. PHP不支持用整数划分数组,因此它给出了错误。因此,当您尝试将数组除以整数时,我必须告诉您实际情况并说这对PHP来说是不可能的。

所有运营商对数组的PHP支持都在这个网站上:

另一方面,如果您担心首先将数组中的值转换为整数,则需要在操作中添加转换函数:

$converter($total) / 100  # 89999.99

其中$converter是一个解析数组的函数:

$total = ['8,999,999'];

$converter = function (array $input) {
    $string = reset($input);
    $formatter = new NumberFormatter('en_GB', NumberFormatter::DECIMAL);
    return $formatter->parse($string, NumberFormatter::TYPE_INT32);
};

var_dump($converter($total) / 100); # double(89999.99)

希望这有帮助。

答案 2 :(得分:0)

你为什么用这个:$ total = ['8,999,999']; ?这是一个错误

使用方式:$ total = 8999999;

折扣解决方案是: 举个例子:

   <?php
        $percent = 10;
        $total   = 1000;

        $discount_value= ($total / 100) *$percent;

        echo  $final_price = $total - $discount_value;
   ?>

答案 3 :(得分:0)

以上所有都是正确的,但也尝试这个:

if (isset($_POST['percent'])) {
    $percent=$_POST['percent'];
    $total='8999999';

    /*calculation for discounted price */ 

    $discount_value= ($total / 100) *$percent;

    $final_price = $total - $discount_value;

    echo $final_price;
}

不仅$ total总错了,而且在进行计算之前你应该验证表格是否已被提交。

答案 4 :(得分:0)

注意:此版本仅是检查数值的建议。

如果在表单字段中输入数值,则会在之后显示新价格。

然而,如果该字段包含除数字以外的任何内容,则它将恢复为原始价格。

我还注意到原始代码中的<link rel="stylesheet" type="css/text" href="style.css"不完整。

它应该读作<link rel="stylesheet" type="css/text" href="style.css">你遗漏了结束“大于符号”=&gt; >

添加了以下代码:

if (is_numeric ($_POST['percent'])) 
 {

 echo "<center>";
 echo "Your new price is: $" . $final_price;
 echo "</center>";
 } else {
 echo "<center>";
 echo "Please enter your promo code. <br>The current price is: $" . $final_price;
 echo "</center>";
 }

请随时使用。(我使用了更实际的汽车价格)。

<!DOCTYPE html>
<html>
<head>
<title> Car Shop Cars! </title>
<link rel="stylesheet" type="css/text" href="style.css" />
</head>

<body>

<div id="header"> 
</div>

<div id="carpic">
</div>

<div id="price">
<center> This is the Nissan 350z and costs $35,000.00<br>
</center>
</div>

<div id="form">
<form action="index.php" method="post">

<center> <input type="text" name="percent" id="percent" />
<input type="submit"  /> </center>

</form> 
<?php

$percent=$_POST['percent'];
$total = 35000;

    /*calculation for discounted price */ 

    $discount_value= ($total / 100) *$percent;

    // I added this below
    $final_price = $total - $discount_value;

    $final_price = number_format($final_price);

    number_format($final_price, 2, '.', '');


if (is_numeric ($_POST['percent'])) 
 {

 echo "<center>";
 echo "Your new price is: $" . $final_price;
 echo "</center>";
 } else {
 echo "<center>";
 echo "Please enter your promo code. <br>The current price is: $" . $final_price;
 echo "</center>";
 }

?> 
</div>

</body> 
</html>