无法将多维数组传递给$ .post

时间:2016-12-13 22:58:44

标签: jquery arrays ajax multidimensional-array

所以我试图将多维数组传递给$ .post ajax函数但由于某种原因它没有读取数组。

sections = [];

for (var i = 0; i < 2; i++) {
  var array = new Array();
  array['main'] = i;

  var items = new Array();
   for (var j = 0; j < 2; j++) {
    var array2 = new Array();
    array2['sub1'] = (j+i);
    array2['sub2'] = (j*i);

    items[j] = array2;
   }
   array['items'] = items; 

  sections[i] = array;
}
console.log(sections);
$.post("planners/save_sections?ajax=1", {sections: sections, id:id}, function(response) {}); 

因此,使用firebug调试并查看正在传递的帖子数据,它似乎读取了id变量,但没有读取sections变量。

从php方面我使用print_r($_POST)来查看收到的内容,它似乎也只读取了id变量。

这里有语法问题吗?或者我错过了什么?提前谢谢

1 个答案:

答案 0 :(得分:0)

您正在尝试将字符串键添加到数组中。你不能用JavaScript做到这一点。

如果需要动态可设置的命名属性,则需要使用对象。

每次使用new Array()时,您应该使用{}

var obj = {}
obj['main'] = i; // or obj.main = i