Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/245.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
php:表单定价错误_Php_Html_Forms_Scripting - Fatal编程技术网

php:表单定价错误

php:表单定价错误,php,html,forms,scripting,Php,Html,Forms,Scripting,如您所见,我试图创建一个简单的表单,在php部分输出价格。但我有这些错误 注意:未定义变量:第3行的/var/www/vhosts/numyspace.co.uk/web_users/home/~unn_w12024193/public_html/test/example2.php 注意:未定义索引:在第4行的/var/www/vhosts/numyspace.co.uk/web_users/home/~unn_w12024193/public_html/test/example2.php中预订

如您所见,我试图创建一个简单的表单,在php部分输出价格。但我有这些错误

注意:
未定义变量:第3行的/var/www/vhosts/numyspace.co.uk/web_users/home/~unn_w12024193/public_html/test/example2.php

注意:
未定义索引:在第4行的/var/www/vhosts/numyspace.co.uk/web_users/home/~unn_w12024193/public_html/test/example2.php中预订

警告:
第4行的/var/www/vhosts/numyspace.co.uk/web_users/home/~unn_w12024193/public_html/test/example2.php中被零除

总费用为: 注意:
未定义变量:第18行的/var/www/vhosts/numyspace.co.uk/web_users/home/~unn_w12024193/public_html/test/example2.php
开箱桶。总成本包括增值税

HTML


双人房50英镑
双人房70英镑
家庭房100英镑
是的,10英镑
不

PHP

$vresult=$result*20%
$booking=$_GET[“booking”];
如果($booking==“双人间”){
$result=50+$\u GET[“服务”];
}
其他条件(预订=“双人间”){
$result=50+$\u GET[“服务”];
}
其他条件(预订=“家庭房”){
$result=100+$\u GET[“服务”];
}
?>
总成本为扣除增值税。
总成本包括增值税。

未定义
$result
。我正在引用php的第一行:
$vresult=$result*20%
。如果您试图根据预订类型设置
$result
,则需要将注释行移到设置
$result
的代码下方

另外,您的表单方法是
POST
,因此您需要使用
$\u POST['booking']

您还缺少一个
在php的第一行之后这是错误的:

$vresult = $result * 20%
%
字符是,因为您没有使用第二个参数,也没有使用终止的
会导致各种错误,因为php将您的代码行视为:

$vresult = $result * 20 % $booking = $_GET["booking"];
                                     ^^^^^^^^^^^^^^^^ undefined (see below)
                          ^^^^^^^^ NULL leads to division by zero
您可能想要:

$vresult = $result * 0.2;
并且您的表单方法是
POST
,因此您发布的变量将位于
$\u POST
数组中


编辑:包含20%的价格当然是
1.2*$result
,您在计算价格之后计算

首先:vresult应该在您定义$result之后,用*1.2而不是*20%计算额外的20%; Second:您需要使用$\u POST而不是$\u GET
Third:$\u POST['service']可以更改,只需在输出之前检查一下即可

$booking = @$_POST["booking"];
$service = @$_POST["service"] == 10? 10 : 0;

if ($booking == "Double Room"){
   $result = 50 + $service;
}
else if($booking == "Twin Room"){
   $result = 50 + $service;
}
else if($booking == "Family Room"){
   $result = 100 + $service;
}
$vresult = $result * 1.2;
?>
 Total cost is <?php echo $result;?> exculding VAT.

 Total cost is <?php echo $vresult; ?> including VAT.
$booking=@$\u POST[“booking”];
$service=@$_POST[“service”]==10?10 : 0;
如果($booking==“双人间”){
$result=50+$service;
}
其他条件(预订=“双人间”){
$result=50+$service;
}
其他条件(预订=“家庭房”){
$result=100+$service;
}
$vresult=$result*1.2;
?>
总成本为扣除增值税。
总成本包括增值税。

首次打开文件时,未提交任何表单,并且未定义这些变量。
您需要先使用isset()函数,然后才能定义它们

在我看来,您需要移动计算增值税的行

$vresult = $result * 20%
在您实际计算完
$result
-之后关闭PHP脚本。你需要把它写成

$vresult = $result * 0.2;

$result从哪里来?您的
method=“post”
,因此请检查
$\u post
,而不是
$\u GET
。您似乎从第3行开始给出PHP。第1行和第2行发生了什么?哪里定义了
$result
?$result用作变量,以反映计算的总成本。我需要用什么代码来定义它呢?你还错过了
$result*20%
问题。一大块没有解释的代码永远都不是一个好答案。好了,我记下了所有的错误,非常感谢大家。刚刚意识到@Jeroen有一个几乎相同的答案。。。他先到了那里。价格计算前的增值税计算很好,我甚至没有注意到。好的,谢谢,我会记住的。包括增值税将是
*1.2
,而不是
*0.2
。如果你做了
*0.2
计算价格的20%,用
*1.2
计算价格的20%。@John True,前几行错得太多了,我没有全部读过。为清晰起见进行了编辑。
$vresult = $result * 20%
$vresult = $result * 0.2;