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

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

执行删除function后的我的呼叫:

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

这里的控制台错误是:

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

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

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

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

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

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

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

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

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

和空消息显示正常。