我的表格有30个字段:3个字段,重复10次。这是我的代码:
<form id="artikelform" method="POST" name="controleartikelen" action="">
<table id="controle">
<tr><th>Maakartikel</th><th>Aantal</th><th>Leverdatum</th></tr>
{for $i=1 to 10}
<tr>
<td><input type="text" name="artikel" class="artinput"/></td>
<td><input type="text" name="aantal" class="aantalinput"/> x</td>
<td><input type="text" name="datum" class="dateinput"/></td>
</tr>
{/for}
</table>
<input type="button" onclick="javascript:startControle();" value="Controleer"/>
</form>
我想通过AJAX(POST方法)将我的表单值发送到PHP脚本。我尝试使用我的ajax发送$.param($("#artikelform").serializeArray());
作为POST数据,但该函数的结果不可用(只有很多变量采用GET格式)。将此表单与AJAX结合使用的最佳方法是什么?也许是另一种使用serializeArray()
的方式?
编辑:
这是我的AJAX请求代码:
$.ajax({
url: 'myscript.php',
cache: false,
data: formdata,
type: "POST"
}).done(function(data){
$("#resultwrapper").html(data);
})
答案 0 :(得分:3)
或者:
1)使用PHP函数json_decode()将JSON编码数据结构映射到PHP数组,或
2)不要序列化有效负载,而是将变量命名为php数组:
<tr>
<td><input type="text" name="artikel[]" class="artinput"/></td>
<td><input type="text" name="aantal[]" class="aantalinput"/> x</td>
<td><input type="text" name="datum[]" class="dateinput"/></td>
</tr>
答案 1 :(得分:1)
我认为您应该尝试使用$('#artikelform').serialize()
而不是$.param($("#artikelform").serializeArray());
,然后您可以使用$_POST['fieldname']
访问PHP脚本中的字段而不会出现问题