我试图使用ajax将javascript数组发送到php --他就是我所做的
var d = $("#fromDate").val();
var arr = [];
for(var x=0; x<count_select; x++){
var myArray = new Array();
myArray['val'] = $("select").eq(x).val();
myArray['type'] = $("select").eq(x).attr('type');
myArray['id'] = $("select").eq(x).attr('id');
arr.push(myArray);
myArray = new Array();
}数组包含多维数组中我想要的元素。

但是,当我像这样将它发送到php页面时:(数组尚未转换,这里是我希望将其转换为json的地方)
$.ajax({
type: "POST",
url: "URL_PATH",
data: {"arrar":arr,"date":d},
dataType: "json",
success: function(data) {
alert(data);
}
});在“网络”选项卡中我找到
date "2017-07-08"找不到数组,所以我如何将这个多维数组转换为一个对象,以便我可以使用php处理它
发布于 2017-07-08 13:05:57
可以使用map()简化此操作,并为每个项使用一个对象:
var arr = $('select').map(function() {
return {
val: this.value,
id: this.id,
type: $(this).attr('type')
}
}).get();发布于 2017-07-08 13:00:25
var myArray = {}是对象,不是数组,.Because数组在js中没有键值对。
var arr=[];
for(var x=0; x<10; x++){
var myArray = {};//try with object not a array
myArray['val'] = 10;
myArray['type'] = 11;
myArray['id'] = 12;
arr.push(myArray);
}
console.log(arr)
发布于 2017-07-08 12:58:51
var array = new Array()
array["foo"] = "bar";
console.log(JSON.stringify(array))
// -> []哎呀?
这里的问题是,当数组在post请求中发送时,它不会被正确地转换为文本。JS中的数组只期望数字作为索引,在JS中没有关联数组。关联数组的类比是对象。其中有一个简单的键:值存储。
你真正想要的是一个object
var obj = {};
obj["foo"] = "bar";
console.log(JSON.stringify(obj))
// -> { "foo": "bar" }在Javascript中,所有东西都是一个对象,所以您可以这样做:
var n = 1;
n.name = "number with property";即使这没有任何意义,你也不会犯错误;)
https://stackoverflow.com/questions/44986399
复制相似问题