ここで真剣に苦労しています。私は多次元配列を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';
私はこれがpost
経由でPHPに取得したいここでは、私がしようとしているものです。今、次のPHPで
// 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);
})
私はやっている:
今main_array['peoplearray'] = peoplearray;
は、AJAXを行うために:私は、多次元とにかくこれだと私は一緒にちょうどそれらを結合aswellて考え出し放火犯で
$data= $_POST['data'];
print_r($data);
:(an empty string)
私はvar data = JSON.stringify(main_array);
を持っていますコメントのない私は、次を得る:[][
私は私が手PHPに$data = json_decode($_POST['data']);
を追加した場合:
Array ()
基本的に私が気付いmain_array
は配列である必要はありませんので、私は何の問題を越えているものを得ることができますしかし、私がする必要があるのは、peoplearray
を手に入れて、foreach
などをPHPで実行できるようにすることです。どんな助けでも大歓迎です。私はただ愚かであると確信しています!
EDIT:peoplearray
は0または100のエントリを持つことができるので、PHP入力にする必要があります。foreach
DB入力を行うことができます。より良いアプローチがあれば、私はまだそれがかなり新しいので、それを聞いて非常に感謝しています。
編集:Nicolaのおかげで、mainarry.peoplearrayという重要な部分を除いて、すべてが正常に処理されています。戻り値console.log
には表示されず、PHPでアクセスできません。これについての解決策、またはjavascriptにforeachインテリジェンスを入れて、すべてを個別に送信する必要がありますか? JavaScriptで何の連想配列が存在しないとこのような理由のために
main_array['peoplearray'] = peoplearray;
main_array.peoplearray = peoplearray;
に相当し、あなたのようmain_array宣言する必要があるため、すべてのmain_array
の
ajaxリクエストを行うJS関数全体を投稿できますか? console.log(main_array)を使用している場合($ .ajaxを呼び出す前に)、Firebugには何が表示されますか? –
JSON.stringifyの前にconsole.log(main_array)で正しい結果が得られました。私はJSON.stringifyの後に:[]。私が現在しているすべてのアヤックスまで。実際にはそれは唯一の真のコピー&ペーストです!ちょうどこの点に到達するために私は永遠にChromeで配列をデバッグしています。 – Zac