【发布时间】:2013-08-21 03:10:13
【问题描述】:
我有一个脚本,它基于用户选择的值生成 JSON 数组。这些值作为带有 AJAX 的 JSON 发送到 PHP 脚本,该脚本应该接收这些值并对其进行处理。
可能出了什么问题?
JSON(即发送):
[{
"Pages":
{"name":" Page Name 1",
"id":"252456436636644"}
},
{
"Pages":{
"name":" Page Name 2",
"id":"345345435435232"
}
}]
jquery:
var json_pages = JSON.stringify(publish);
$.ajax({
url: "post.php",
type: "post",
data: { PublishToPages: json_pages },
success: function(){},
error: function(){}
});
问题是我从 PHP 收到的 JSON 没有获取数据,
if($_POST['PublishToPages']) {
$json = $_POST['PublishToPages'];
$array = json_decode($json, true);
foreach($array as $item) {
$page_id = $item['Pages']['id'];
echo $page_id;
}
}
如果我像这样在 PHP 脚本中手动输入 JSON,它就可以工作,
if ($_POST['PublishToPages']) {
$json = '[{"Pages":{"name":" Page Name","id":"234545355345435"}},{"Pages":{"name":" Page Name 2","id":"345345435435435435"}}]';
$array = json_decode($json, true);
foreach($array as $item) {
$page_id = $item['Pages']['id'];
echo $page_id;
}
}
【问题讨论】:
-
你检查过 $array 里面有什么吗?
-
添加这个dataType:"json", 到ajax后试试。
-
如果你在 "var json_pages = JSON.stringify(publish);" 行之后执行 "console.log(publish)"结果是什么? http 请求向您展示了什么?数据是否发送到服务器?
-
尝试将
var_dump($_POST['PublishToPages'])添加到您的 PHP 代码中。它输出什么? -
感谢@EswaraReddy 我尝试添加 dataType:"json",但它立即在 ajax 中给了我一个“错误”。应该这样放? $.ajax({ url: "post.php", type: "post", dataType:"json",