JQuery DataTables - AJAX重新加载如何在没有返回任何内容时捕获

时间:2011-12-21 00:38:46

标签: jquery ajax null datatables reload

我正在使用数据表并允许从数据库中删除记录。删除后,我重新加载表以显示最近的更改。但是,如果我从数据库中删除最后一条记录,则AJAX调用将返回null,并且不会更新数据表(它仍会显示刚刚删除的记录)。

执行删除功能后

我的呼叫:

oTable.fnDraw();
oTable.fnReloadAjax();

此处的控制台错误是:

json.aaData is null
[Break On This Error] for ( var i=0 ; i<json.aaData.length ; i++ ) 

有没有办法检测何时从AJAX返回任何内容,以便数据表可以检测到没有记录并显示'datatable empty'消息(即表中没有数据)?

3 个答案:

答案 0 :(得分:1)

好的,问题是在服务器端,当我的sql查询为空时,它返回NULL作为aaData ['aaData']值。

刚刚添加了这个,现在它返回一个只是空的表:

if(mysql_num_rows($result)==0){
        $aaData = array();
        $aaData['aaData']='';
        echo json_encode($aaData);
        exit;
    }

答案 1 :(得分:0)

将您的JSON数据放在包装器中,让包装器告诉您没有数据,而不是返回null:

{"data":[... your current data ...],"total":0,"success":true}

答案 2 :(得分:0)

我怀疑您需要查看服务器端代码并​​找出aaData为空的原因。我使用数据表,当没有记录时,生成的json是:

...,"aaData":[],...

并显示空消息。