我一直收到这个错误:
致命错误:第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>
答案 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>