我正在尝试通过ajax请求处理表单。问题是我在表单中有一个数组变量,当我通过serialize处理它以通过ajax发送它时返回:
email_id%5B%5D=1&email_id%5B%5D=2&test=23
这是.serialize的结果。
我也在为数组变量使用多个select标签。
为什么我会收到此错误,我应该怎么做以避免和修复它。
<select name="email_id[]" id="email_id_0" style="width: 350px;margin-right: 5;">
</select>
function setList(str){
var postDatas = $('#form'+str+'').serialize();
alert(postDatas);
// $('#crm-feedback').html('<img src="images/ajax-loader.gif"/>');
$.ajax({
url: 'somewhere/file.php',
type: 'POST',
data: postDatas,
success: function(data){
// $('#crm-feedback').html('Saved!').css('color','green');
alert("test");
}
});
}
谢谢。
答案 0 :(得分:2)
尝试以下
var array = document.getElementById("<your array elem>");
var formdata = new FormData();
for(var i=0; i< array.length; i++){
formdata.append("<key>",array[i]);
}
$.ajax(
{
url: "<url>",
dataType: "<expected return datatype>",
type: "POST",
data: formdata,
success: function (result, status) {
//process success
},
error: function (result, status) {
//process failure
}
});
答案 1 :(得分:1)
我今天遇到了一个几乎完全相同的问题,现在可以通过这里的帮助解决了这个问题 - read this post and look at the jsfiddles