2015-04-28 2 views
0

Моя версия dataTable - 1.10.4. Я наполнение DataTable, передавая данные Javascript, полученыПолучить отфильтрованный массив данных из базы данных JavaScript Таблица данных

var dataSet = [ 
    ['Trident','Internet Explorer 4.0','Win 95+','4','X'], 
    ['Trident','Internet Explorer 5.0','Win 95+','5','C'] 
     ---- 
];  ---- 


    $(document).ready(function() { 
     $('#demo').html('<table cellpadding="0" cellspacing="0" border="0" class="display" id="example"></table>'); 

$('#example').dataTable({ 
    "data": dataSet, 
    "columns": [ 
     { "title": "Engine" }, 
     { "title": "Browser" }, 
     { "title": "Platform" }, 
     { "title": "Version", "class": "center" }, 
     { "title": "Grade", "class": "center" } 
    ] 
}); 

});

Теперь у меня есть вход для поиска, чтобы отфильтровать таблицу на основе ввода. Я пытаюсь получить отфильтрованные данные, которые возвращают и отображают в таблице.

Например, если поиск входа пользователей является 'C', то я должен получить отфильтрованные данные

вар DataSet = [ [ 'Трайдент', 'Internet Explorer 5.0', 'Win 95 +', '5 ',' C '] ];

Есть ли какой-либо стандартный способ получения фильтрованных данных в datatable?

, если не я хочу, чтобы получить массив на ключ до

$("#searchInput").on('keyup change', function() { 
        // get the filtered JavaScript data 
       }); 

Пожалуйста, обратитесь к JSFIDDLE HERE

ответ

0

Это пример поиска для вас; вы можете удалить кнопку и добавить свой обмен в свою область.

Search <input type="text" id="searchText"> 
<input type = "button" onClick="searchAndUpdate()"> 

Это функция;

 function searchAndUpdate(){ 
     var searchText = $('#searchText').val(); 
     var resultTable = []; 
     dataSet.forEach(function(element) { 
      var objString = JSON.stringify(element); 
      if(objString.indexOf(searchText)!=-1){ 
       resultTable.push(element); 
      } 
     }); 
     console.log(resultTable); 

     //update your table 
    } 

Примечание: Вы должны обновить таблицу. Here EXAMPLE.

2

Вы можете использовать search.dt событие для этого (здесь предполагается, что вы сохранили экземпляр DataTable в table переменной):

$("#example").on('search.dt', function() { 
    var filteredRows = table 
         .api() 
         .rows({order:'index', search:'applied'}) 
         .data(); 

    for (var i=0; i<filteredRows.length; i++) { 
     console.log(filteredRows[i]); 
    };  
});   

Это эхо все отфильтрованные строки в консоли в в том же порядке, как они были объявлены в вашем dataSet объекте:

["Gecko", "Firefox 3.0", "Win 2k+/OSX.3+", "1.9", "A"] 
["Gecko", "Camino 1.0", "OSX.2+", "1.8", "A"] 
["Gecko", "Camino 1.5", "OSX.3+", "1.8", "A"] 
["Gecko", "Netscape 7.2", "Win 95+/Mac OS 8.6-9.2", "1.7", "A"] 

и т.д. Примечание, если вы instantiat e ваш стол с DataTable() вместо dataTable() вам не понадобится ссылка api().

раздвоенная скрипка ->http://jsfiddle.net/fpbokb68/


см https://datatables.net/reference/type/selector-modifier с примерами различных способов извлечения строк из экземпляра DataTables.

Смежные вопросы