执行服务器端,简单的计算

时间:2014-11-14 13:33:44

标签: php forms

我是php新手并且一直在尝试启用我正在处理的网站,以正确计算餐厅预订页面上的两个因素的价格(派对大小和VIP区域选择)。目前我已经实现了javascript计算,以便在预订页面上一旦用户做出选择就会自动显示总价格,但是我希望在提交预订表格后显示确认php页面,以执行计算。服务器端。

以下是有问题的html代码(reservations.html):

<strong>Select Party Size:</strong>
<br>
<select name="party" id="party" onblur="validateSelect(name)">
<option value="">Please Select</option>
<option value="5 (+£5)">1 Person (£5)</option>
<option value="10 (+£10)">2 People (£10)</option>
<option value="15 (+£15)">3 People (£15)</option>
<option value="20 (+£20)">4 People (£20)</option>
<option value="25 (+£25)">5 People (£25)</option>
<option value="30 (+£30)">6 People (£30)</option>
<option value="35 (+£35)">7 People (£35)</option>
<option value="40 (+£40)">8 People (£40)</option>
<option value="45 (+£45)">9 People (£45)</option>
<option value="50 (+£50)">10+ People (£50)</option>
</select>

...

<strong> VIP Area? </strong>
<br>
Yes (+£5) <input name="hand" id="left" value="5 (+£5)" onblur="validateRadio(id)" type="radio">
No <input name="hand" id="right" value="0" onblur="validateRadio(id)" checked="" type="radio">
<span class="validateError" id="handError" style="display: none;">Please specify whether you would like a table in the VIP area.</span>

这是我目前拥有的PHP代码,它没有完全正常运行(confirmation.php):

<b>Total Reservation Costs: </b>
<?php $party + $hand

如果有人知道我如何纠正我的PHP代码以执行派对和VIP区域选择的计算并在确认php页面上显示,我将非常感谢任何建议。

谢谢

2 个答案:

答案 0 :(得分:0)

使用echo打印:

<?php
  $party = $_POST['party'];
  $hand = $_POST['hand'];
  echo $party + $hand;

答案 1 :(得分:0)

当您使用表单元素选择,复选框,收音机时,要记住的一件事是value属性对用户不可见,因此您可以根据自己的喜好设置这些属性。

考虑到这一点,让我们看一下你的选择选项

<option value="5 (+£5)">1 Person (£5)</option>
<option value="10 (+£10)">2 People (£10)</option>
<option value="15 (+£15)">3 People (£15)</option>

无需在值中添加(+£5),只需提供数字,这将使您的计算更加轻松。

这意味着它看起来像这样

<option value="5">1 Person (£5)</option>
<option value="10">2 People (£10)</option>
<option value="15">3 People (£15)</option>

我们将对您的单选按钮执行相同的操作:

<input name="hand" id="left" value="5 (+£5)" onblur="validateRadio(id)" type="radio">

变成

<input name="hand" id="left" value="5" onblur="validateRadio(id)" type="radio">

现在,在提交表单的页面上,您可以获得类似这样的值

$party = intval( $_POST['party'] );
$hand = intval( $_POST['hand'] );
$cost = $party + $hand;

?>
<b>Total Reservation Costs: </b> <?php echo $cost; ?>

我假设您在HTML表单中使用method="post",如果您使用的是method="get",那么您需要将$_POST更改为$_GET

你会注意到我正在使用intval(),这样做的原因是将字符串转换为int值,这可能是不必要的,但我用它来演示如何将字符串转换为int, intval()仅适用于整数more information on intval()