通过ajax到PHP的多维数组

前端之家收集整理的这篇文章主要介绍了通过ajax到PHP的多维数组前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
好认真在这里挣扎.我试图通过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';

我希望通过帖子将其发送到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);

在萤火虫:(一个空字符串)

当我有var data = JSON.stringify(main_array);取消注释我得到以下内容:[] [

如果我添加$data = json_decode($_ POST [‘data’]);我得到的PHP

Array ( )

基本上我认识的main_array不需要是一个数组,所以我可以得到那些东西没有问题,但我需要做的是让人们发布,以便我可以做一些foreach等…用它在PHP中.任何帮助将不胜感激我相信我只是愚蠢!

编辑:这背后的原因是peoplearray可能有0或100个条目,所以我只需要将它转换为PHP,这样我就可以预先做它来进行数据库输入.如果有一个更好的方法,我会非常感激听到它,因为我仍然是新手.

编辑:感谢Nicola的回答一切正常,除了mainarry.peoplearray的重要部分 – 它没有出现在return console.log中,我无法在PHP中访问它.任何有关此问题的解决方案或我是否必须将foreach智能放在javascript中并单独发送所有内容

解决方法

首先,main_array不是一个数组而是一个对象,因为在javascript中没有关联数组,因此
main_array['peoplearray'] = peoplearray;

相当于

main_array.peoplearray = peoplearray;

你应该像这样声明main_array

var main_array = {};

然后尝试改变你的功能

var send = $.ajax({
        type: "POST",dataType: "json",data: {data:main_array} 
});

和服务器端

header('Content-type: application/json');
$data= $_POST['data'];
echo json_encode($data);

猜你在找的Ajax相关文章