我正在尝试创建报价单。这将通过电子邮件发送给我和填写表格的人。我想回应所选的值(我目前有这个工作)&为选择分配一个整数值。然后,我想要添加整数以提供总计。在下面的例子中,我刚刚包含了一个选项,但我在表单中会有很多选项。任何帮助都会很棒!
<label>What time would you like to start?
<select required name="drop_off_time" id="drop_off_time-select" value="<?php if(isset($_POST['drop_off_time'])) echo $_POST['drop_off_time'];?>">
<option value="0"></option>
<option value="8:00am">8:00am</option>
<option value="8:30am">8:30am</option>
<option value="9:00am">9:00am</option>
</select>
</label>
if(isset($_REQUEST['drop_off_time']) && $_REQUEST['drop_off_time'] == '0') {
echo 'Please select a time.';
}
$drop_off_time = $_POST['drop_off_time'];
$emailTo = 'me@gmail.com';
$subject = 'Fees Form Submission from '.$name;
$sendCopy = trim($_POST['sendCopy']);
$body = "Name: $name \n\nEmail: $email \n\nComments: $comments \n\nDrop Off Time: $drop_off_time \n\nTotal: £$total";
$headers = 'From: My Site <'.$emailTo.'>' . "\r\n" . 'Reply-To: ' . $email;
mail($emailTo, $subject, $body, $headers);
一切正常。我的问题是我想为选择分配一个整数。我已经使用开关完成了这项工作,但它会保持打印出所选的值而不是我指定的新值。这个代码如下。
$drop_off_time_price = 0;
switch ($drop_off_time_price) {
case 0;
echo 0;
break;
case "8:00am":
echo 100;
break;
case "8:30am":
echo 10000;
break;
case "9:00am":
echo 100000;
break;
}
//Getting the total
$total = $drop_off_time_price;
这就是电子邮件的样子
姓名:弗兰克
电子邮件:me@mail.com
评论:我得到了所选的值,但没有得到总数......
送货时间:上午8:00
总计:£0
答案 0 :(得分:2)
您的逻辑中存在一些问题:
您应该在switch语句中检查 $ drop_off_time 。所以它应该是:
switch ($drop_off_time) {
正如@FloatingRock所提到的,案例0;应该是:
case 0:
而不是echo 0,您应该将该值分配给$drop_off_time_price
$drop_off_time_price = 0;
所以你的完整例子应该是这样的:
$drop_off_time_price = 0;
switch ($drop_off_time) {
case "8:00am":
$drop_off_time_price = 100;
break;
case "8:30am":
$drop_off_time_price = 10000;
break;
case "9:00am":
$drop_off_time_price = 100000;
break;
}
注意:您也可以在我的示例中删除0检查,因为您已经将0的默认值设置为0
价格。
答案 1 :(得分:0)
在switch
声明中,当case 0;
case 0:
与:
答案 2 :(得分:0)
您使用的第二段代码显然不是您想要的整数。我想,你正在使用这个块计算$ total,然后在你的电子邮件正文$ body中使用。但是,开关块不会为任何变量计算或分配任何内容。它只打印出一些值 - 在你的例子中为0。
我的建议:请发布所有代码,您可能会得到详细的答案。