我用jQuery收集数据,把它放到一个多维数组中,在它上面使用JSON.stringify
并使用AJAX将它传递给PHP,出于某种原因,json_decode继续给我一个Syntax error, malformed JSON
错误。
继承传递给PHP的JSON
[\"foo\",\"foobar did the baz\",[[\"bar\",\"kg\",\"200\"],[\"baz\",\"l\",\"1337\"]]]
奇怪的是我在JS中的多维数组上使用JSON.stringify。继承人我怎么把它放在一起
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);
}
}
});
答案 0 :(得分:2)
如果您的服务器使用魔术引号,则需要删除它们:
if (get_magic_quotes_gpc()) {
$_POST['ingredients'] = stripslashes($_POST['ingredients']);
}