2017-01-15 1 views
0

私はDatatable V. 1.10.12で作業しており、データはPHP/Ajax/JSONによって完全にレンダリングされているので、最近ボタンを追加することにしました。今、私は選択されたテーブルの行を削除するために、テーブルの外側の上に別の削除ボタンがあります。これまでのところうまく動作します。残念ながら、テーブルが空の場合に少し問題が発生しました。次に、表にNOデータがあります。それがその共通の成果です。 私が気にしていることは、削除ボタンをクリックして警告メッセージを表示し、テーブルが空であることです。空のアラートをテーブル化( 'msg')して停止します。確かに、それをチェックするのに正しいオブジェクトは何でしょうか。どうすればそれを確立できますか?データテーブルが空であるか警告なし

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

あなたはここでoutdatatedメソッドを使用しているようです。私のDatatableでは動作しません。その結果、以下のようになります:処理中...テーブルがロードされていません。どういうわけかそれは固まっています。再び、私はV.1.10.12を使用しています。わかりませんが、それらのfn.xxxxxxメソッドはすべて私のDatatableにとって無用です。どうすればこれを解決できますか? –

+0

そのemtpyテーブル行(テーブルで利用可能なデータはありません)をクリックすると、 'undefined'が返されます。私は\tを試しました。( 'undefined'!= typeof id){alert( 'whatever')}しかし何もありません。 –

関連する問題