我在jQuery中做了一个函数,它将获得一些数据表单页面,然后它需要使用ajax发送数据。 我已经测试发送一些字符串作为数据,所有工作正常,但现在,当我需要发送数组由于某种原因它不起作用。 在控制台上我有:发送数组时,jquery和ajax
["3"]
[]
而我没有得到警觉。可能是数据类型的一些问题?
$("#save").click(function() {
var sendArr= new Array();
var arr = $(".sortable").map(function(){return this.innerHTML}).get();
for (var i = 0; i < arr.length; i++) {
test =$(arr[i]).map(function() { return $(this).attr("data-ex"); });
console.log(test);
sendArr[i]=test;
}
$.ajax({
type: "POST",
url: "http://localhost/someurl/",
data: {action: sendArr}
}).done(function(msg) {
alert("Data Saved: " + msg);
});
});
您是否尝试添加'.fail'来查看为什么'.done'没有被触发? – rjz
首先,数据属性是通过'data()'方法获得的,其次,如果data属性是你所追求的,为什么不映射它,而不是映射innerHTML,然后用它来获取数据属性,你会跳过很多不必要的箍。最后,您的服务器端脚本是否处理数组,并且在发送之前将其包装在对象中后,它不是真正的数组。 – adeneo