1

我已經使用數據表列出了我的應用程序中的所有用戶。我必須爲管理員添加一項功能,以對數據表中的過濾數據執行「刪除」操作。例如,在數據表的搜索框中鍵入「R」列出所有可能的數據,其中包含字母「R」。現在點擊一個按鈕「刪除」將刪除所有這些用戶。我實現了這個邏輯,但它只是從第一頁需要的數據:從非Ajax化數據表獲取所有過濾的數據

$("#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: "https://stackoverflow.com/users/delete_selected", 
       data: { 
        users: users 
       } 
      }) 
      .always(function() { 
       window.location.reload(); 
      }); 
     } 
    }); 

但我想在過濾設置,刪除每一個數據。請幫忙!謝謝。

+0

哪些版本的數據表? – davidkonrad

回答

2

假設你正在使用的數據表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版本的數據表,你必須使用插件,請參見http://datatables.net/forums/discussion/214/how-to-get-searched-or-filtered-data/p1