次のデータがあるとします。
var arr = [], arr1 = [], arr2 = [], arr3 = [], arr4 = [];
var a = 'something', b = 'else';
arr1['key1-1'] = 'value1-2';
arr1['key1-2'] = 'value1-2';
for (var i = 0; i < someCond; i++) {
arr = [];
arr['key2-1'] = 'value2-1';
arr['key2-2'] = 'value2-2';
arr2.push(arr);
}
ここで、その穴を php スクリプトに渡す必要があります。
次のように単一の変数にパッケージ化しました。
var postVar = {
a: a,
b: b,
arr1: arr1,
arr2: arr2
};
私はjQueryを使用しているので、次のように投稿しようとしました:
1)
//Works fine for a and b, not for the arrays
$.post('ajax.php', postVar, function(response){});
そしてこれ:
2)
var postVar = JSON.stringify(postVar);
$.post('ajax.php', {json: postVar}, function(response){});
phpファイルで
$req = json_decode(stripslashes($_POST['json']), true);
これも機能しません。
データを PHP に送信するには、どのようにデータを構造化/フォーマットする必要がありますか?
ありがとう
編集:
ケース 1: console.log(postVar);
PHP print_r($_POST) 応答: 配列 ( [a] => something [b] => else )
ご覧のとおり、php 側には配列 (オブジェクト) はありません。
ケース 2:
以下を追加すると:
postVar = JSON.stringify(postVar); console.log(postVar);
console.log(postVar) で {"a":"something","b":"else","arr1":[],"arr2":[[],[],[]]} を取得し
ます
この場合、それが問題のようです...そうですか?