JQuery DataTables - AJAX перезагружает, как ловить, когда ничего не возвращается - PullRequest
3 голосов
/ 21 декабря 2011

Я использую таблицу данных и разрешаю удаление записей из базы данных.После удаления я перезагружаю таблицу для отображения последних изменений.Однако, если я удаляю последнюю запись из базы данных, при вызове 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 ]

1 голос
/ 30 декабря 2011

Хорошо, поэтому проблема была на стороне сервера, когда мои sql-запросы были пустыми, он возвращал NULL в качестве значения aaData ['aaData'].

Только что добавил это, и теперь оно возвращается как пустая таблица:

if(mysql_num_rows($result)==0){
        $aaData = array();
        $aaData['aaData']='';
        echo json_encode($aaData);
        exit;
    }
0 голосов
/ 21 декабря 2011

Я подозреваю, что вам нужно взглянуть на код на стороне сервера и выяснить, почему aaData имеет значение null.Я использую таблицы данных, и когда нет записей, генерируется json:

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

и пустое сообщение отображается нормально.

0 голосов
/ 21 декабря 2011

Поместите ваши данные JSON в оболочку, и пусть оболочка сообщит вам, что данных нет, вместо того, чтобы возвращать ноль:

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