[英]Send data from large form by AJAX
我有一个包含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脚本。 我试图发送$.param($("#artikelform").serializeArray());
使用我的ajax作为POST数据,但是该函数的结果不可用(只是很多以GET格式存在的变量)。 与AJAX结合使用此表格的最佳方法是什么? 也许是使用serializeArray()
另一种方式?
编辑:
这是我的AJAX请求代码:
$.ajax({
url: 'myscript.php',
cache: false,
data: formdata,
type: "POST"
}).done(function(data){
$("#resultwrapper").html(data);
})
或者:
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>
我认为您应该尝试$('#artikelform').serialize()
而不是$.param($("#artikelform").serializeArray());
然后,您应该可以使用$_POST['fieldname']
毫无问题地访问php脚本中$_POST['fieldname']
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.