javascript - DataTable 1.10x jQuery 列过滤器通过输入文本框服务器端

标签 javascript php jquery datatable

我在通过输入元素进行DataTable 1.10列过滤时遇到问题。

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。

最佳答案

首先必须序列化字段(在 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 );
    }

最后处理构建请求的条件

关于javascript - DataTable 1.10x jQuery 列过滤器通过输入文本框服务器端,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26446160/

相关文章:

javascript - 有没有办法找到适用于网页的所有全局样式?

javascript - 当我向下滚动一定数量时,我试图让一个 div 出现?

javascript - 当浏览器选项卡中的 URL 更改时自动注销

php - WordPress:在网站上仅加载一个jquery脚本

javascript - 编写带有多层引号的 JavaScript 字符串

javascript - 检测网站的其他用户何时打字

javascript - 如何使这个 jQuery 驱动的页面更快速?

php - 从 HTML 表单向 MySQL 数据库插入多行

php - foreach 循环不会生成唯一的列表项 ID

javascript - 如何使用 Javascript 在 Angular 2 中进行路由