У меня проблема, как и у многих других людей, - возможность прочитать переменную массива PHP после отправки ее через ajax ().Ajax успешно выполняет и отображает возвращенные данные, которые имеют значение NULL.Я уже тщательно исследовал SO-решения для этой проблемы JSON / PHP, и мое описание проблемы показывает «почти» КАЖДОЕ решение на SO.
На стороне PHP, которую я пробовал:
$data = json_decode(file_get_contents('php://input'), true);
var_dump($data);
(Пропуск $ HTTP_RAW_POST_DATA (устарел), поскольку он равен file_get_contents ('php: // input')
, а также:
$data = json_decode($_POST["a_arr"], true);
Я уже пытался очиститьUTF-8 BOM с командой sed
sed '1s/^\xEF\xBB\xBF//' < index.html > index2.html
Мой .ajax () выглядит следующим образом:
$.ajax ({
url:"file.php",
method:"post",
contentType: "application/json; charset=utf-8",
data: { a_arr : JSON.stringify(arr) },
})
.done(function(response){
$("#status").html(response);
});
На стороне Javascript вот мой массив:
var arr = [{"name":_name, "phone":_phone, "email":_email, "repname":repname, "repnumber":repnumber, "office":office}];
ajax_post(arr);
Я проверил, чтобы убедиться, что нет ошибки форматирования JSON, следующее успешно показывает мне допустимый форматированный массив JSON:
var data_arr = JSON.stringify(arr);
document.getElementById("status").innerHTML = data_arr;