Я пытаюсь передать многоуровневый массив Javascript на другую страницу моего сайта:
-
используя JSON.stringify в массиве
-
присвоение результирующего значения полю ввода
-
размещение этого поля на второй странице
-
используя json_decode для опубликованного значения
-
затем var_dump для проверки
-
(echo'ing опубликованная переменная непосредственно, чтобы увидеть, не получилось ли это вообще)
Javascript на первой странице:
var JSONstr = JSON.stringify(fullInfoArray);
document.getElementById('JSONfullInfoArray').value= JSONstr;
php на странице 2:
$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