我有一个非常复杂的订单,您可以通过单选按钮订购产品。
我还有一个文本框,根据您选择的内容在页面上实时计算价格。
这是通过使用此脚本
完成的<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>
任何想法?
答案 0 :(得分:0)
如果使用javascript,则不会为服务器$ _POST数据设置输入字段的值。所以你正在寻找某种序列化(即获取所有输入值并通过$ _POST发送它们的javascript,你可以手动完成但是它很乏味)
如果你想坚持使用纯粹的javascript:http://code.google.com/p/form-serialize/可能有所帮助。否则,请查看一些框架和serialize(),大多数框架都经常使用它。
我的建议是在PHP aswel中重新创建价格生成脚本,因此您只需提交已按下的表单按钮(您不需要序列化),然后只需从后端获取价格。也更安全了!