2016-11-16 84 views
1

我已經生成了記錄,每一行都有刪除按鈕,當我點擊刪除按鈕時,它會刪除數據庫中的記錄。另外,刪除後它將重新加載dataTable。任何幫助?如何在刪除記錄/數據後重新加載dataTable?

數據表:

var table = $('#table').DataTable({ 

    "processing": true, 

    //some settings? 
}); 

的jQuery:

$(document).on('click', '[id^="delete-product-"]', function() { 

    var id = this.id.split('-').pop(); 

    $.ajax({ 
     type: 'post', 
     url: 'my_controller/delete_product', 
     dataType: 'json', 
     data: {id: id}, 
     success: function(callback) 
     { 
      //What should I code here, that can't reload entire page, only the table 
      //after deleting records 
     }, 
     error: function(status) 
     { 
      console.log(status); 
     } 
    }); 
}); 

任何幫助,將不勝感激。預先感謝您

回答

5

您不必重新加載整個表數據,只需刪除已刪除的行。

$(document).on('click', '[id^="delete-product-"]', function() { 
    var $button = $(this); 
    var id = this.id.split('-').pop(); 

    $.ajax({ 
     type: 'post', 
     url: 'my_controller/delete_product', 
     dataType: 'json', 
     data: {id: id}, 
     success: function(callback) 
     { 
      table.row($button.parents('tr')).remove().draw(); 
     }, 
     error: function(status) 
     { 
      console.log(status); 
     } 
    }); 
}); 
+0

太好了。它現在正在工作,謝謝你這麼多兄弟, –

+0

跟進問題兄弟,關於編輯?應該重新加載整個頁面?或者你能給我一些想法嗎? –

+0

@MarkyOnyab很棒。如果您通過在旁邊放一個綠色的勾號來接受我的答案,請加以理解。關於編輯,這不僅僅是刪除。可以通過用文本框替換每個表格單元格來完成簡單的輸入框,然後在更新完成後將它們替換回文本。但複雜的輸入類型,如datepickers,下拉列表,豐富的文本字段,你最好不要在表中顯示,你需要一個單獨的頁面進行編輯。如果你將來需要一些詳細的編輯,我建議單獨的頁面。但如果您需要編輯多個記錄但速度很快的速度,那麼您需要在表格中完成。 – Ergec

相關問題