我已使用数据表列出我的应用程序中的所有用户。我已经为管理员添加了执行"删除"的功能。对数据表中的过滤数据进行操作。例如,输入" R"在数据表的搜索框中列出所有可能包含字母" R"的数据。现在单击按钮"删除"会删除所有这些用户。我已经实现了这个逻辑,但它只从第一页获取数据:
$("#delete-users").click(function(){
var status = confirm("All the users currently showing in the table will be deleted. Do you want to continue?");
if(status){
var users = new Array();
$("table#users tbody tr").each(function() {
users.push(this.id);
});
$.ajax({
type: "POST",
url: "/users/delete_selected",
data: {
users: users
}
})
.always(function() {
window.location.reload();
});
}
});
但我想删除过滤集中的每个数据。请帮忙!感谢。
答案 0 :(得分:2)
假设您正在使用dataTables v1.9或更高版本:您可以通过这种方式检索所有已过滤的行(请参阅下面的链接):
var filteredRows = dataTable._('tr', {"filter":"applied"});
您的功能应如下所示:
$("#delete-users").click(function(){
var status = confirm("All the users currently showing in the table will be deleted. Do you want to continue?");
if(status){
var users = [];
var filteredRows = dataTable._('tr', {"filter":"applied"});
filteredRows.forEach(function(row) {
//push value for the column index that holds id for the user
//0 is just a demonstration
users.push(row[0]);
});
//
//...
//
}
});
这是一个演示 - >的 http://jsfiddle.net/73DEd/ 强>
如果您使用的是1.9以下的dataTables版本,则必须使用插件,请参阅http://datatables.net/forums/discussion/214/how-to-get-searched-or-filtered-data/p1