通过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); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |