2017-01-15 1 views
0

Поскольку я работаю с Datatable V. 1.10.12, и данные отлично визуализируются PHP/Ajax/JSON, я также решил добавить несколько кнопок в последнее время. Теперь у меня есть другая кнопка удаления поверх таблицы, чтобы удалить выбранную строку таблицы. Пока работает хорошо. К сожалению, я столкнулся с небольшой проблемой, когда таблица пуста. Затем он показывает: НЕТ данных, доступных в таблице. Это общий результат для этого. Что я имею в виду - это поставить предупреждающее сообщение, нажав кнопку «Удалить», а таблица пуста, например. если предупреждение о пустой таблице («msg») и остановка. Не уверен, что будет правильным объектом для проверки. Как я могу его установить?Datatable empty or not by alert

mytable

$(document).ready(function() { 
     "use strict"; 
     var newstable = $('#tablenews').DataTable({ 
     responsive: true, 
     // "paging":  true, 
     // "pagingType": "full_numbers", 
     "processing": true, 
     "serverSide": true, 
     "ajax": { 
      url: "../pages/newsdatagrid.php", // json datasource 
      type: "POST" 
     }, 

     }); 

     // Simple delete button to remove selected table row 
     $('#delbtn').click(function() { 

     if ($('tr.selected').hasClass('selected')) { 
      var id = $('.delbtn').attr('data-id'); 
      var data = 'id=' + id; 

      if (newstable === 0) { 
      alert('NO data available'); 
      } 

      // alert(id); 

      $.ajax({ 
      type: "POST", 
      url: "delrow.php", 
      data: data, 
      cache: false, 
      success: function(response) { 

       newstable.row('.selected').remove().draw(false); 

       // alert(response); 

      } 
      }); 

     } else { 
      alert('First select table row'); 
     } 
     }); 
    }); 
+0

Кстати, я заметил, что, стирая выбранную строку таблицы, удаляется неправильная строка, так как подсчитывается выбранный ID + 1. Как так? Тот же код, что показан выше –

ответ

0

определить глобальную переменную и проверить его содержимое после щелчка на кнопке:

var globalData; 
$('#tablenews').DataTable({ 
     responsive: true, 
    // "paging":  true, 
    // "pagingType": "full_numbers", 
     "processing": true, 
     "serverSide": true, 
     "sAjaxSource": "../pages/newsdatagrid.php", 
     "fnServerData": function (sSource, aoData, fnCallback) { 
     $.ajax({ 
      url: sSource, 
      type: "POST", 
      success: function (data) { 
       globalData=data; 
       fnCallback(data); 
      } 
     }); 
    } 

    }); 

для проверки используйте:

if (globalData.length == 0) { 
     alert('NO data available'); 
} 
+0

, кажется, вы используете устаревшие методы здесь. Это не работает для моего Datatable. В результате он говорит: Обработка ... Никакая таблица никогда не загружается. Как-то он застрял. Опять же, я использую V.1.10.12. Не уверен, но все эти методы fn.xxxxxx бесполезны для моего Datatable. Как еще я могу это решить? –

+0

, щелкнув эту строку таблицы emtpy (данных нет в таблице), она возвращает «undefined». Я попробовал \t if ('undefined'! = Typeof id) {alert ('whatever')}, но ничего. –