json_encode和getJSON

时间:2013-12-17 00:07:49

标签: php json

我在服务器端使用PHP来获取json格式的输出,如下所示。在客户端,我使用jQuery显示结果,但它显示null。请让我知道我哪里出错了。任何帮助表示赞赏。

PHP

while ($r = mysql_fetch_assoc($result))
{
    $rows[] = $r;
}
echo json_encode($rows);

输出

[
    {
        "a_name": "affles",
        "bname": "bua",
        "c_number": "10101010",
        "dateandtime": "2013-11-30 17:50:04"
    },
    {
        "a_name": "affles",
        "bname": "bua",
        "c_number": "10101010",
        "dateandtime": "2013-11-30 17:50:04"
    },
    {
        "a_name": "anan",
        "bname": "nesh",
        "c_number": "2017439441",
        "dateandtime": "2013-12-04 17:50:04"
    }
]

客户端

$.getJSON("http://apip.com/results.php", function (data) {
    $.each(data, function (index, value) {
        $('<li>' + value.a_name + '</li>').appendTo('#groups');
    });
});

使用JSONP的客户端代码:我修改了客户端以使用JSONP但仍然返回null。感谢帮助

<script>
(function() {
  var flickerAPI = "http://apip.com/results.php?jsoncallback=?";
  $.getJSON( flickerAPI, 
    (function( data ) {
      $.each( data.items, function( index, value ) {

$('<li>' + value.a_name + '</li>').appendTo('#groups');

      });
    });
})();
</script>

1 个答案:

答案 0 :(得分:1)

从这个fiddle可以看出,它运行正常。我怀疑是错误的是你正在使用http://apip.com/results.php并且你可能在愚弄jQuery认为你正在做一个跨域请求(你可能正在做),这通常被浏览器禁止,除非你使用JSONP。如果您拥有http://apip.com/,请使用

$.getJSON("/results.php", function (data) {
    $.each(data, function (index, value) {
        $('<li>' + value.a_name + '</li>').appendTo('#groups');
    });
});