2014-10-19 49 views
0

我遇到了问题数据表1.10通过输入元素进行列筛选。DataTable 1.10x jQuery列筛选器通过输入文本框服务器端

jQuery(document).ready(function() {  

    dt_table = $('#datatable_list').DataTable({ 
     "dom": "<'top'i>rt<'table-scrollable't>lp", 
     "processing": true, 
     "serverSide": true, 
     "ajax": "ajax/list_json.php", 
     "pageLength": 10, 
     "autoWidth": false 
    }); 

    $('#quickfind').on('keyup', function() { dt_table.search(this.value).draw(); }); 

}); 

正如你可以看到我使用服务器端处理与JSON输出。总榜单填补不错。

在表中存在与4个输入页脚:

       <tfoot> 
            <tr> 
             <th><input type="text" id="filters_0" name="filters_0" class="form-control form-filter"></th> 
             <th><input type="text" id="filters_1" name="filters_1" class="form-control form-filter"></th> 
             <th><input type="text" id="filters_2" name="filters_2" class="form-control form-filter"></th> 
             <th><input type="text" id="filters_3" name="filters_3" class="form-control form-filter"></th> 
            </tr> 
           </tfoot> 

我使用的标准ssp.class.php类。请使用这个简单的列过滤项目工作4天。

我想要的很简单。快速查找文本框非常适合搜索整个表格。但我想过滤每列。像'filters_0'是产品的ID。但这是行不通的。

请您理解我使用最新的DataTabes 1.10。

回答

1

在将它们作为搜索数据传递之前,您首先必须序列化您的字段(在tfoot中)。 我使用一个外部表,并提交时,只要做到这一点:

dt_table = $('#datatable_list'); 
var formData = $('#search-form-orders').serialize(); 
dt_table.search(formData).draw(); 

然后在服务器端,我不使用SSP而是一个定制的框架,所以:

// get the 'search' array from $_GET and don't forget to clean it !!! 
if($search['value'] !=='') 
    foreach (explode('&', $search['value']) as $chunk) { 
     $param = explode("=", $chunk); 
     $field = urldecode($param[0]); 
     $value = urldecode($param[1]); 
     $criterias[] = array($field => $value); 
    } 

最后治疗制定要求的标准

相关问题