2016-11-16 70 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

相关问题