次の方法で、多次元 Javascript 配列をサイトの別のページに渡そうとしています。
配列で JSON.stringify を使用する
結果の値を入力フィールドに割り当てる
そのフィールドを2番目のページに投稿する
投稿された値に json_decode を使用する
次に、テストする var_dump
(投稿された変数を直接エコーして、それがまったく通過したかどうかを確認します)
1 ページ目の Javascript:
var JSONstr = JSON.stringify(fullInfoArray);
document.getElementById('JSONfullInfoArray').value= JSONstr;
2 ページ目の php:
$data = json_decode($_POST["JSONfullInfoArray"]);
var_dump($data);
echo($_POST["JSONfullInfoArray"]);
エコーは正常に機能しますが、var_dump は NULL を返します
私は何を間違えましたか?
これで直りました:
$postedData = $_POST["JSONfullInfoArray"];
$tempData = str_replace("\\", "",$postedData);
$cleanData = json_decode($tempData);
var_dump($cleanData);
理由はわかりませんが、文字列内の各変数を区切る「\」文字の束が投稿に含まれていました
json_last_error()
戻ってきたバートによって提案されたように使用してそれを理解しましたJSON_ERROR_SYNTAX