2016-06-21 4 views
0

Я реализовал DataTable с ssp.classDataTables индивидуальный поиск колонка не работает

, когда я использую код с этой страницы https://datatables.net/examples/api/multi_filter.html это выглядит, что DataTables ищет, но без результата. В консоли я не вижу никаких ошибок и ответов, получая данные, которые он получает, получая некоторые данные (но есть 20-30 запросов на запрос в каждом поле поиска, многие из которых имеют 0 результатов, лишь немногие с записями)

это мой код

var table2 = $('#dataTables-subjekt-childrow').DataTable({ 
     'dom': 'C<"clear">lfrtip', 
     'dom': 'T<"clear">lfrtip', 
     'tableTools': { 
       "aButtons": [ 
        "copy", 
        "print", 
        { 
         "sExtends": "collection", 
         "sButtonText": "Save", 
         "aButtons": [ "csv", "xls", "pdf" ] 
        } 
       ] 
      }, 
     'destroy':true, 
     'stateSave': true, 
     'columns.orderSequence': [[0, 'asc']], 
     'processing': true, 
     'serverSide': true, 
     'ajax': '../list_subjekt2.php', 
     'jQueryUI': true, 
     'autoWidth': false, 
     'searching':true, 
     'lengthChange': true, 
     'paging': true, 
     'ordering': true, 
     'pageLength': 100, 
     'info': true, 
     'pagingType': 'full_numbers', 
     'language': {"url": "../json/datatables_slovak.json"}, 
     'columns': [ 
      { "data": "nazov", "searchable": true }, 
      { "data": "okres", "searchable": true }, 
      { "data": "kraj", "searchable": true }, 
      { "data": "typ", "searchable": true }, 
      { "data": "spravuje", "searchable": true }, 
      { 
       "className":  'details-control', 
       "orderable":  false, 
       "data":   null, 
       "searchable": false, 
       "defaultContent": '' 
      }, 
      { 
       "className":  'details-contact', 
       "orderable":  false, 
       "data":   null, 
       "searchable": false, 
       "defaultContent": '' 
      }, 
      { 
       "className":  'details-comm', 
       "orderable":  false, 
       "data":   null, 
       "searchable": false, 
       "defaultContent": '' 
      }, 
      { 
       "className":  'details-files', 
       "orderable":  false, 
       "data":   null, 
       "searchable": false, 
       "defaultContent": '' 
      }, 
      { 
       "className":  'details-edit', 
       "orderable":  false, 
       "data":   null, 
       "searchable": false, 
       "defaultContent": '' 
      }, 
      { 
       "className":  'details-delete', 
       "orderable":  false, 
       "searchable": false, 
       "data":   null, 
       "defaultContent": '' 
      } 
     ], 
     'order': [[0, 'asc']], 
     initComplete: function() 
      { 
       var r = $('#dataTables-subjekt-childrow tfoot tr'); 
       r.find('th').each(function(){ 
       $(this).css('padding', 8); 
       }); 
       $('#dataTables-subjekt-childrow thead').append(r); 
       $('#search_0').css('text-align', 'center'); 
      } 



    }); 


    $('#dataTables-subjekt-childrow tfoot th').each(function() { 
     var title = $(this).text(); 
     $(this).html('<input type="text" placeholder="Hľadaj '+title+'" />'); 
    }); 

    table2.columns().every(function() { 

    var that = this; 
     $('input', this.footer()).on('keyup change', function() { 
      if (that.search() !== this.value) { 
       that 
        .search(this.value) 
        .draw(); 
      } 
     }); 
    }); 

, когда я ставлю в последней функции вместо значения «что» мое имя таблицы, он помещает свой поиск в полнотекстовом поиске выше

как я могу получить этот индивидуальный поиск колонки работает пожалуйста?

редактировать: , когда я добавил, что .column (this.colIdx) на мой код, я могу видеть, что даже я помещал строку поиска в мой 3-й или 4-й колонке, она ищет только в первой колонке

that 
        .column(this.colIdx) 
        .search(this.value) 
        .draw(); 

edit2: Я попытался отключить serveride, чтобы обработать его клиентом, но если он слишком медленный, результат будет таким же , когда я вижу параметры, отправленные с помощью поиска по серверу, он отправил параметры ok, но 11 запросов, поскольку у меня есть 11 столбцов в datatable, и для некоторых ничьих он возвращает правильный json и для некоторого пустого. Но это показывает, что никакие данные не рисовать

ответ

1

хорошо, я нашел этот полезный пост, и я понял, что я должен положить, что поиск в Initcomplete из DataTable https://datatables.net/forums/discussion/31765/server-side-with-individual-column-searching-text-inputs

мой код выглядит как этот

var table2 = $('#dataTables-subjekt-childrow').DataTable({ 
     blablabla 
    'order': [[0, 'asc']], 
    initComplete: function() 
     { 
      var r = $('#dataTables-subjekt-childrow tfoot tr'); 
      r.find('th').each(function(){ 
      $(this).css('padding', 8); 
      }); 
      $('#dataTables-subjekt-childrow thead').append(r); 
      $('#search_0').css('text-align', 'center'); 

    var api = this.api(); 

    // Apply the search 
    api.columns().every(function() { 
    var that = this; 

    $('input', this.footer()).on('keyup change', function() { 
     if (that.search() !== this.value) { 
     that 
      .search(this.value) 
      .draw(); 
     } 
     }); 
    }); 

     } 



}); 


$('#dataTables-subjekt-childrow tfoot th').each(function() { 
    var title = $(this).text(); 
    $(this).html('<input type="text" placeholder="Hľadaj '+title+'" />'); 
});