0

我有一个脚本,它基于用户选择的值生成 JSON 数组。这些值作为带有 AJAX 的 JSON 发送到一个 PHP 脚本,该脚本应该接收这些值并对其进行处理。

有什么问题?

JSON(即发送):

[{
  "Pages":
         {"name":" Page Name 1",
          "id":"252456436636644"}
         },
  {
   "Pages":{
          "name":" Page Name 2",
          "id":"345345435435232"
          }
}]

查询:

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;  
    }
}
4

3 回答 3

0

尝试这个

$.ajax({
    url: "post.php",
    type: "post",
    dataType:"json",
    data: { PublishToPages: json_pages },
    success: function(){},
    error: function(){}   
});  
于 2013-08-19T10:47:52.817 回答
0

感谢所有输入!我使用 var_dump 解决了这个问题,并意识到它是编码错误,所以添加了 stripslashes(); 它奏效了!:)

if ($_POST['PublishToPages']) {

    $json = stripslashes($_POST['PublishToPages']);

    $array = json_decode($json, true);

    foreach($array as $item) { 
        $page_id = $item['Pages']['id'];
        echo $page_id;  
    }
}
于 2013-08-19T11:02:38.287 回答
0

尝试使用这个:

if($_POST['PublishToPages']) {

    $json = $_POST['PublishToPages'];
    $items = array();

    $array = json_decode($json, true);

    foreach($array as $item) { 
        $page_id = $item['Pages']['id'];
        $items[] = $page_id;  
    }

    echo json_encode($items);
}
于 2013-08-19T10:46:47.920 回答