2015-03-05 2 views
0

У меня есть этот datatable, и я пытаюсь использовать YADCF, чтобы отфильтровать мои результаты. Таблица работает нормально, и пользовательский интерфейс фильтра загружается идеально, но когда я выбираю дату, он фильтрует все результаты и даже когда i удаляет выбор, применяется фильтр, пока я не обновляю страницу. Эта ошибка применяется ко всем фильтрам yadcf, а не только range_date.yadcf range_date фильтр всегда возвращает пустое значение

$(document).ready(function() { 
    var active = $('#active').DataTable({ 
     global: false, 
     "dom": 'f<"toolbar">rtilp', 
     "processing": true, 
     "serverSide": true, 
     "ajax": { 
      "url": "processing_active.php" 
     }, 

     "order": [[ 4, "desc" ]]',[ 2, "asc" ],[ 10, "desc" ]], 
     "deferRender": true, 
     "lengthMenu": [[55, 155, 250, -1], [55, 155, 250, 'All']], 
     "columns": [ 
     { 
      "class":   "details-control", 
      "orderable":  false, 
      "data":   null, 
      "defaultContent": "", 
      "visible":  false 
     }, 
     { "data": "loadNumber","width": "8em"}, 
     { "data": "driverName","width": "10em"}, 
     { "data": "truckNum","width": "5em"}, 
     { "data": "puDate","width": "9em"}, 
     { "data": "puCity", "width": "10em" }, 
     { "data": "puState", "width": "1em" }, 
     { "data": "regStatus"}, 
     { "data": "deCity", "width": "10em" }, 
     { "data": "deState", "width": "1em"}, 
     { "data": "deDate","width": "9em"}, 
     { "data": "loadRate","width": "7em"}, 
     { "data": "confNumber", "width" : "9em"}, 
     { "data": "dispatcherName", "width": "10em"}, 
     { "data": "smallStatus"} 
     ] 
    }); 
    $(document).ready(function() {  
     $('#active').dataTable().yadcf([ 

        { 
        column_number: 4, 
        filter_type: "range_date", 
        } 
     ]); 

    }); 
+0

Вы писали логику фильтрации на вашем серверная сторона? потому что при использовании данных с обработкой на стороне сервера вся ваша логика фильтрации выполняется на сервере тоже ... вам нужно проанализировать столбцы [0] [поиск] [значение] '/' [1] [поиск] [значение] '/ etc и вернуть только соответствующее значение обратно клиенту – Daniel

+0

Вы имеете в виду, что я должен редактировать' server_processing.php' или 'ssp.class.php', используя пример с вашего сайта? Если да, то как конкретно? –

ответ

1

Вам нужно написать логику фильтрации на вашей стороне сервера, так как при использовании DataTables с серверной обработкой все логики фильтрации выполняются на сервере тоже нужно проанализировать columns[0][search][value]//etc и вернуть только соответствующие строки обратно клиенту,

Вы можете использовать github, чтобы попытаться найти подходящий пример, используя yadcf и php, здесь ? возможно search query on github

пс вы действительно должны использовать следующий синтаксис для инициализации yadcf, в первом готовом блоке кода сразу после построения DataTables, вызовите следующий код

yadcf.init(active,..... 
+0

фильтр типа 'range_date' отправляет' -yadcf_delim-'в качестве значения. например 'columns [3] [search] [value]: - yadcf_delim-'. – tchelidze

+0

@tchelidze, он отправляет это при сбросе фильтра даты, см. Себя на витрине http://yadcf-showcase.appspot.com/server_side_source.html – Daniel

+0

Спасибо, в моем случае, выбор даты в раскрывающемся календаре не отправляет запрос на сервера вообще. Редактирование другого фильтра столбца отправляет запрос, но для 'column [3]' значение поиска пустое, e.i '-yadcf_delim-' – tchelidze

0

Попробуйте вместо этого для yadcf:

yadcf.init(active, [{ 
    column_number:  4, 
    column_data_type: 'text', 
    filter_type:   'range_date' 
}]); 
+0

Все те же. Никаких ошибок в консоли –

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