Я собрал данные с помощью jQuery, поместил их в многомерный массив, использовал JSON.stringify
и передал их в PHP с помощью AJAX, по какой-то причине json_decode продолжает выдавать мне ошибку Syntax error, malformed JSON
.
Вот JSON, который передается в PHP
[\"foo\",\"foobar did the baz\",[[\"bar\",\"kg\",\"200\"],[\"baz\",\"l\",\"1337\"]]]
Странно то, что я использую JSON.stringify для многомерного массива в JS.Вот как я это собрал
var dataz = [];
var arrayContainingAll = [];
$("li", "#ingredientlist").each(function() {
var tempArray = [];
tempArray.push($(".ingredientname", this).text());
tempArray.push($(".unittext", this).text());
tempArray.push($(".amounttext", this).text());
arrayContainingAll.push(tempArray);
});
dataz.push($("h1").text());
dataz.push($("#method").val());
dataz.push(arrayContainingAll);
var json = JSON.stringify(dataz);
Как я могу заставить PHP правильно анализировать многомерный массив?Я исправил это, передав 3 различных строковых массива, но больше любопытно, почему многомерный массив терпит неудачу
PHP, чтобы показать, что происходит: var_dump(json_decode($_POST['ingredients']));
, потому что это явноважно показать, как я публикую данные, вот как JS выполняет запрос ajax
$.ajax({
url: '/api/savenewrecipe.php',
type: 'POST',
data: 'ingredients=' + json + "&name=" + $("h1").text() + "&method=" + $("#method").val(),
success: function(result) {
if (result.ok == true) {
// @todo remove this for debugging purposes
//document.location.href = '/recipe/' + result.id;
}
else {
showError("Noget gik galt!", 2000);
}
}
});