我有一个非常复杂的订单,您可以在其中通过单选按钮订购产品。
我还有一个文本框,价格在页面上实时计算,根据您选择的内容进行
。这是使用此脚本完成的
<script type="text/javascript">
jQuery(document).ready(function($){
var frm = document.forms.myForm;
frm.onchange = function(e) {
var tot = 0;
for( var i = 0, l = frm.elements.length; i < l; i++ ) {
if( frm.elements[i].checked ) {
tot += parseFloat( frm.elements[i].getAttribute('data-price') );
}
}
document.getElementById('total').value = ( tot.toFixed(2) );
}
})
</script>
盒子在这里
<input id="total" name="total2" class="total-box" type="text">
但是由于某种原因,信息没有添加到发送的邮件中,其他所有内容都发送正常。
在我的邮件脚本中,我有
$total2 = $_REQUEST['total2'] ;
和
<tr><td style="border-bottom:1px solid #7e7e7e;">Price</td><td style="border-bottom:1px solid #7e7e7e;">'.$total2.' </td></tr>
有什么想法吗?
如果使用 javascript,则不会为服务器 $_POST 数据设置输入字段的值。所以你正在寻找某种序列化(即javascript,它接受所有输入值并通过$_POST发送它们,你可以手动完成,但它很乏味)
如果你想坚持纯javascript:http://code.google.com/p/form-serialize/可能会有所帮助。否则查看一些框架和 serialize(),大多数框架都实现了它,因为它经常使用。
我的建议是在 PHP aswel 中重新创建您的价格生成脚本,因此您只需提交已按下的表单按钮(您不需要序列化),然后只需在后端从中获取价格。也安全多了!