我在这里遇到了很大的困难。我正在尝试通过ajax将一个多维数组发送到PHP,但出现了一些问题。以下是我一直在尝试的内容:
为了简化,而不是复制并粘贴一堵代码墙:
peoplearray[0] = [name] => 'john'
[age] => '28'
[sex] => 'Male'
peoplearray[1] = [name] => 'julie'
[age] => '20'
[sex] => 'Female'
main_array['item'] = 'x';
main_array['something'] = 'x';
main_array['another'] = 'x';
我希望通过 post
的方式将这个内容传递给 PHP。由于我处在多维数组中,因此我想将它们连接起来:
main_array['peoplearray'] = peoplearray;
现在开始进行Ajax操作:
// var data = JSON.stringify(main_array);
var send = $.ajax({
type: "POST",
cache: false,
url: "theurl",
data: {data:main_array} //I do change this `main_array` when using the above stringify!
});
send.done(function(msg) {
console.log(msg);
})
目前在PHP中,我只是做了以下操作:
$data= $_POST['data'];
print_r($data);
在firebug中:(一个空字符串)
当我取消注释var data = JSON.stringify(main_array);
时,我得到以下结果:[][
如果我在php中添加$data = json_decode($_POST['data']);
,我会得到:
Array ( )
基本上,我意识到
main_array
不需要是一个数组,所以我可以轻松传递那些东西,但我需要做的是将peoplearray
传递过来,这样我就可以在php中使用一些foreach
等方法了。非常感谢任何帮助,我相信我只是太傻了!编辑:之所以这样做是因为peoplearray
可能有0或100个条目,所以我只需要将它传递给php,这样我就可以使用foreach
将其用于数据库输入。如果有更好的方法,我会非常感激听到它,因为我仍然是新手。编辑:由于Nicola的答案,一切都很顺利,除了最重要的部分——mainarry.peoplearray——它没有出现在返回的console.log
中,我无法在PHP中访问它。有关此事的解决方案还是我必须将foreach智能放在javascript中并单独发送所有内容?