如何在数据表上创建一个工作删除按钮

时间:2018-01-17 20:18:13

标签: javascript jquery node.js mongoose datatable

所以我想向DataTable添加一个按钮,该按钮应该从数据库中删除一个帐户,我正在使用,节点js,expresjs(whit html引擎)和mongoose 这是我的模特

const Account = new Schema({
  username: String,
  names: {type:String,default:""},
  lastnames: {type:String,default:""},
  password: String,
  email: String,
  phone: String,
  suspended: {type: Boolean, default: false},
  type:  { type: String, enum: TIPOS_USUARIO, default: 'dev' },
  lastlogin: 'moment'
});

这是html上的脚本,它生成一个DataTable和按钮

$(document).ready(function() {
var table = $('#example').DataTable( {
    "ajax": "/adminpanel/webapi/userlist",
    "columns": [
        { "data": "username" },
        { "data": "names" },
        { "data": "lastnames" },
        { "data": "phone" },
        { "data": "email" },
        { "data": "suspended" },
        { "defaultContent": "<button>Delete!</button>"},
    ], 
});

$('#example tbody').on( 'click', 'button', function () {
    alert( "You are about to delete an user");

    var data = table.row( $(this).parents('tr') ).data();
    table.row('.selected').remove().draw( true );
     });
}); 

但它会生成按钮和警告消息,它不会从数据库中删除帐户,也不会删除DataTable

1 个答案:

答案 0 :(得分:0)

任何地方的表行都不会添加

.selected。因此,将table.row('.selected').remove().draw( true );更改为tr,就像数据一样。 table.row($(this).closest('tr')).remove().draw()

要更新数据库,您需要进行ajax调用并处理用户ID和查询以删除它。

&#13;
&#13;
$('#example tbody').on('click', 'button', function() {
  alert("You are about to delete an user");

  var data = table.row($(this).closest('tr')).data();
  
  //Do ajax call to delete from database.
  
  table.row($(this).closest('tr')).remove().draw();
});
&#13;
&#13;
&#13;