修复jQuery setInterval和JSON

时间:2013-08-01 15:38:37

标签: php jquery ajax json

我编写此代码以从数据库中获取新数据,但我不知道此代码有什么问题,以及为什么我在浏览器控制台中收到以下错误。

jQuery代码:

$(document).ready(function() {
    setInterval(function() {
        var lastdate = $("#countcomment").attr("loadtime");
        $.post("update.php",{ajax:"1", lastdate:lastdate},function(data){
            if(data.getnew){
                $('#countcomment').html(data.getnew);
                $('#countcomment').attr('loadtime', ""+data.new)
            }
        }, "json");
    }, 1000);
}); 

PHP:

$database = $db->super_query("
    SELECT count(*) as count 
    FROM ".PREFIX."_comments 
    WHERE date >= '$real_date' 
");

$newcomments = $database['count'];

if($newcomments > "0"){
    echo "{\"getnew\":\"{$newcomments}\",\"new\":\"{$now_date}\"}";
}

HTML:

<span id="countcomment" loadtime="2013"></span>

错误:

Uncaught TypeError: Cannot read property 'getnew' of null 

我不知道是什么问题!

1 个答案:

答案 0 :(得分:1)

您的服务器可能会发送超出预期的数据(例如错误)。 使用以下js代码检查响应数据:

$(document).ready(function () {
  setInterval(function() {
  var lastdate = $("#countcomment").attr("loadtime");
  $.post("update.php",{ajax:"1", lastdate:lastdate},function(data, status, xhr){
     console.log(xhr.responseText)
     },"json");
  }, 1000);
});

或者您可以在Chrome的开发者工具

中的“网络”标签中看到该数据