我正在使用数据表并允许从数据库中删除记录。删除后,我重新加载表以显示最近的更改。但是,如果我从数据库中删除最后一条记录,则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'消息(即表中没有数据)?
答案 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":[],...
并显示空消息。