【问题标题】:Can't pass multidimensional array to $.post [duplicate]无法将多维数组传递给 $.post [重复]
【发布时间】:2016-12-13 22:58:43
【问题描述】:

所以我试图将多维数组传递给 $.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 变量但不读取 section 变量。

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

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

【问题讨论】:

    标签: jquery arrays ajax multidimensional-array


    【解决方案1】:

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

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

    每次你使用new Array(),你都应该使用{}

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-06-15
      • 1970-01-01
      • 2012-12-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多