Хорошо, серьезно боретесь здесь. У меня возникли проблемы с попыткой отправить многомерный массив на PHP через ajax. Вот что я пытался:Многомерные массивы через 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 через post
. Я полагал, что может Aswell просто соединить их вместе, как я многомерные так или иначе, таким образом:
main_array['peoplearray'] = peoplearray;
теперь делать Аякс:
// 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);
в поджигатель: (an empty string)
, когда у меня есть var data = JSON.stringify(main_array);
раскомментирована я получаю следующее: [][
если добавить $data = json_decode($_POST['data']);
в PHP я получаю:
Array ()
В основном main_array
я понимаю, не нужно быть массивом, и поэтому я могу получить, что материал по без проблем но то, что мне нужно сделать, это получить peoplearray
, чтобы я мог сделать foreach
и т. д. ... с ним в php. Любая помощь будет очень признательна, я уверен, что я просто глуп!
EDIT: Обоснование этого состоит в том, что peoplearray
может иметь 0 или 100 записей, поэтому мне просто нужно получить его на php, чтобы я мог foreach
его делать входы БД. Если будет лучший подход, я был бы очень благодарен за это, потому что я до сих пор довольно новичок в этом.
EDIT: Благодаря ответу Никола, все проходит отлично, за исключением важной части, которая является mainarry.peoplearray - она не появляется в обратном console.log
, и я не могу получить доступ к ней на PHP. Любые решения по этому поводу или мне нужно поставить интеллект foreach в javascript и просто отправить все индивидуально?
Вы можете разместить всю функцию JS, которая делает запрос ajax? если вы используете console.log (main_array) (перед вызовом $ .ajax), что он показывает в firebug? –
Я получаю правильный результат с console.log (main_array), когда делаю это перед JSON.stringify. После JSON.stringify я получаю: []. Что касается ajax, это все, что я делаю в настоящее время. На самом деле это единственная настоящая копия и вставка! Просто, чтобы добраться до этого момента, я взял навсегда отладки массивов в Chrome, это не я, я только что узнал. – Zac