単一のアレイを正常に投稿しましたが、AJAX投稿で複数のアレイを送信する方法がわかりません。1つの配列のコードは次のとおりです。
var a = new Array();
// fill array
var a_post = {};
a_post['array1[]'] = a;
$.ajax({
url: "submitOrder.php",
data: a_post,
type: 'post',
success: function(data) {
alert(data);
}
});
そしてsubmitOrder.phpに私は持っています:
$array1= $_POST['array1'];
foreach ($array1 as $a => $b)
echo "$array1[$a] <br />";
これは正常に機能します。b_post
ただし、フィールドに2番目の配列を追加しようとすると、data:
機能しません。私はそれのいくつかのバリエーションを試しdata: {a_post, b_post},
ましたが、正しく動作させることができません。submitOrder.php
その間、データのアラートを表示するのではなく、投稿後にどのようにロードしますか?
アップデート
Nicolasの提案を使用して、データフィールドを次のように変更して機能させることができました。
data: {'array1':JSON.stringify(a), 'array2':JSON.stringify(b)},
ただし、ユーザーが入力した残りのフォームデータも追加する必要があります。このデータはで取得できますが$(this).serialize()
、フィールドに追加しようとするとdata
機能しません。このデータを上記の行に追加するにはどうすればよいですか?
ありがとう。
解決
(ニコラスの助けを借りて)私が当初望んでいたように機能することになったもの:
var formData = $(this).serializeArray();
var a_string = JSON.stringify(a);
formData.push({name: 'array1', value: a_string});
var b_string = JSON.stringify(b);
formData.push({name: 'array2', value: b_string});
$.ajax({
url: "submitOrder.php",
data: formData,
type: 'post',
success: function(data) {
alert(data);
}
});