PHP表单场景下如何通过AJAX传递新增的隐藏输入字段参数
解决方案
你不需要做复杂的修改,原理和修改方案如下:
- jQuery的
serialize()方法会自动收集表单内所有带name属性的输入项(包含隐藏域、文本框等)的值,拼接为标准的URL编码字符串。你新增的newPrice隐藏域已经设置了正确的name属性,所以原有代码里的qnt = $('#qnt'+id).serialize()已经自动把newPrice的值包含在qnt参数里了,如果你后端原有逻辑是解析qnt参数的内容来获取表单字段值,只需要把后端原先读取price的逻辑改成读取newPrice即可,JS代码不需要改动。 - 如果你希望后端可以直接获取所有参数,不需要额外解析
qnt字符串,可以改用serializeArray()方法合并参数,修改后的AJAX代码如下:
<script type="text/javascript"> function add(id){ // 转换表单数据为数组格式,追加id参数 let formParams = $('#qnt' + id).serializeArray(); formParams.push({name: 'id', value: id}); // 重置表单 $('#qnt' + id).trigger("reset"); $.ajax({ url: 'add2cart.php', method: 'POST', data: formParams, success: function(data){ console.log(data); } }); } </script>
修改后后端可以直接通过$_POST['id']、$_POST['newPrice']、$_POST['qty']获取对应参数值,无需额外解析。
内容的提问来源于stack exchange,提问作者Ameen Assadi
相关产品推荐
相关产品推荐

