Javascript 使用PHP Mailer的订单总计

Javascript 使用PHP Mailer的订单总计,javascript,phpmailer,Javascript,Phpmailer,我们正在为餐饮服务构建一个交互式订单,其中屏幕上会显示全部更新,然后使用PHP Mailer向餐厅经理订购所有详细信息 一切都很好,除了我们无法在电子邮件中发送总数。总数是在人们填写表单时通过javascript生成的 我们相信解决方案是以某种方式在一个隐藏的div或PHP-Mailer可以识别的输入中显示总数,但我们正在努力解决如何做到这一点,或者即使这是正确的答案 下面是一个示例,代码如下。谢谢 注意:我把“总计”和“emailTotal”都放在电子邮件表单中,看看两者是否都有效。我们希望这

我们正在为餐饮服务构建一个交互式订单,其中屏幕上会显示全部更新,然后使用PHP Mailer向餐厅经理订购所有详细信息

一切都很好,除了我们无法在电子邮件中发送总数。总数是在人们填写表单时通过javascript生成的

我们相信解决方案是以某种方式在一个隐藏的div或PHP-Mailer可以识别的输入中显示总数,但我们正在努力解决如何做到这一点,或者即使这是正确的答案

下面是一个示例,代码如下。谢谢

注意:我把“总计”和“emailTotal”都放在电子邮件表单中,看看两者是否都有效。我们希望这只是订单的美元金额

<?php
if(isset($_POST['submit']))
{

$message=
'
<table cellspacing="0" cellpadding="6" border="1" style="width:100%;">
<tr border="1">
<td>DANVILLE BANQUET REQUEST</td>
<td></td>
<td></td>
<td></td>
</tr>
<tr border="1">
<td sytle="width:25%">
<strong>Client:</strong>
</td>
<td sytle="width:25%">
'.$_POST['inputName'].'
</td>
<td sytle="width:25%">
<strong>Day & Time:</strong>
</td>
<td sytle="width:25%">
'.$_POST['date'].'<br />
'.$_POST['time'].'
</td>
</tr>
<tr border="1">
<td><strong>'.$_POST['pickupOrDelivery'].'</strong></td>
<td></td>
<td><strong>Guests:</strong></td>
<td>'.$_POST['guestnumber'].'</td>
</tr>
<tr border="1">
<td>
<strong>Phone:</strong>
</td>
<td>'.$_POST['inputPhone'].'</td>
<td></td>
<td></td>
</tr>
<tr border="1">
<td><strong>Email:</strong></td>
<td>'.$_POST['inputEmail'].'</td>
<td></td>
<td></td>
</tr>
<tr border="1">
<td>
<strong>Package:</strong>
</td>
<td>
<strong>'.$_POST['menu'].'</strong><br />
</td>
<td>
<strong>'.$_POST['room'].'</strong><br />
<td></td>
</tr>
<tr border="1">
<td>
<strong>Extras:</strong>
</td>
<td>
'.$_POST['guac'].'<br />
'.$_POST['quesadillas'].'<br />
'.$_POST['floutas'].'<br />
'.$_POST['ducktacos'].'<br />
'.$_POST['nachos'].'<br />
'.$_POST['roastedcorn'].'
</td>
<td></td>
<td></td>
</tr>
<tr border="1">
<td>
<strong>Desserts:</strong>
</td>
<td>
'.$_POST['flan'].'<br />
'.$_POST['limePie'].'<br />
'.$_POST['cremeBruleeCheesecake'].'

</td>
<td></td>
<td></td>
</tr>
<tr>
<td>
<strong>Notes:</strong>
</td>
<td>'.$_POST['notes'].'</td>
<td></td>
<td></td>
</tr>
<tr>
<td>
<strong>Total:</strong>
</td>
<td>'.$_POST['total'].'</td>
<td>'.$_POST['emailTotal'].'</td>
<td></td>
</tr>
</table>
';

您的隐藏表单字段名为
emailTotal
,但您的JS引用的是
$(“#total”)
-只要将其更改为
$(“#emailTotal”)
,您就可以了。

您必须将Javascript的计算公式移植到PHP,相信我,这是您拥有的更安全的选项。只要确保在表单提交中发送进行演算所需的所有数据。我创建了emailTotal作为一个单独的变量,可以在隐藏字段中使用,前提是我们不能再次调用total。我猜这是一个错误…是的,我看到了,但是你没有在JS代码中设置它的值,因此出现了问题。像这样<代码>$(“#total”).html(total.toFixed(2))$(“#emailTotal”).html(total.toFixed(2))
emailTotal
是一个表单字段,因此使用
val()
来设置其值,而不是
html()
。刚刚发现-您还需要将
id=“emailTotal”
添加到表单字段中。希望这样就行了。
<div class="row">
                  <div class="col-lg-10 offset-lg-1">
                    <div class="total">
                      <h2>Total: $<span id="total"></span></h2>
                        </div>
                        <br />
                      <input type="hidden" name="emailTotal" value="help" />
                    <input type="submit" class="btn btn-success btn-lg btn-block" name="submit" value="Submit Request" />
                  </div>
                </div>
var total = (banquetPrice * numGuests) + (9.5 * numGuac) + (9.5 * numQuesa) + (9.5 * numNachos) + (9.5 * numFloutas) + (12.5 * numDuckTacos) + (4.5 * numRoastedCorn) + (7* numFlanP) + (7* numKeyLimeP) + (7 * numCheesecakeP)
    console.log(banquetPrice)
    $("#total").html(total.toFixed(2));
    console.log(total)