2017-07-14 105 views
0

我有一個簡單的消息系統,我使用jQuery/AJAX從數據庫中檢索消息並追加到表中。我想分頁的消息,所以我選擇使用DataTables插件(https://datatables.net/)。帶動態數據的jQuery數據表

我在使用我的動態生成數據時遇到了問題。我還有一些功能,如「刪除消息」,然後刪除該消息,然後再次檢索消息(刷新​​表格)。我收到錯誤「無法重新初始化DataTable」。

這是我到目前爲止的代碼:

function getmessages(){ 
    $.ajax({ 
     type: "POST", 
     url: "modules/ajaxgetmessages.php", 
     dataType: 'json', 
     cache: false, 
     }) 
     .success(function(response) { 
      if(!response.errors && response.result) { 
       $("#tbodymessagelist").html(''); 
       $.each(response.result, function(index, value) { 
        var messagesubject = value[3]; 
        var messagecontent = value[4]; 
        var messagetime = value[5]; 
        var sendername = value[2]; 
        var readstatus = value[7]; 
        var messageid = value[8]; 
        if (readstatus==0){ 
         messageheader += '<tr><td><input type="checkbox" class="inboxcheckbox input-chk"></td><td class="sendername"><b>'+sendername+'</b></td><td class="messagesubject"><b>'+messagesubject+'</b></td><td><b>'+messagetime+'</b></td><td class="messageid" style="display:none">'+messageid+'</td><td class="readstatus" style="display:none">'+readstatus+'</td><td class="messagecontent" style="display:none"><b>'+messagecontent+'</b></td></tr>'; 
        } else { 
         messageheader += '<tr><td><input type="checkbox" class="inboxcheckbox input-chk"></td><td class="sendername">'+sendername+'</td><td class="messagesubject">'+messagesubject+'</td><td>'+messagetime+'</td><td class="messageid" style="display:none">'+messageid+'</td><td class="readstatus" style="display:none">'+readstatus+'</td><td class="messagecontent" style="display:none"><b>'+messagecontent+'</b></td></tr>';               
        } 
       }); 
       $("#tbodymessagelist").html(messageheader); 
       $('#tblinbox').DataTable({ 
        "paging": true, 
        "ordering": false, 
        "info":  false 
       }); 
      } else { 
       $.each(response.errors, function(index, value) { 
        $('input[name*='+index+']').addClass('error').after('<div class="errormessage">'+value+'</div>') 
       }); 
      } 
     });  
} 

所以,我怎樣才能從本質上講,使信息缺失或其他功能,然後後更改我的表「刷新」表?它還在頁腳中顯示Showing 0 to 0 of 0 entries,即使這裏有條目。

+0

嘗試'破壞:TRUE' –

+0

有在數據表選項有阿賈克斯 - 這樣你就可以得到數據表來完成所有的沉重的東西,分頁/排序,所以你不再需要的所有行加載爲一體。從長遠來看,當有很多消息時,這會很好。 –

回答

0

你必須銷燬datatable berfore創建新的實例;

 
      ` 
      $('#tblinbox').DataTable.destroy(); 
      $('#tblinbox').empty();