繁体   English   中英

搜索不在datatables中工作 - Jquery

[英]Search not working in datatables - Jquery

我的数据表充满了服务器端的输入,但不幸的是我的搜索框没有过滤我的数据。 当我在第1页上搜索时,它不会过滤。 当我移动到分页的第2页并开始在框中搜索时,它会自动将我移至第1页。

在控制台中也没有显示错误,并给我一个提示。 有什么可能导致这个问题?

PS:我正在使用yajra包数据表。

JS脚本

$(document).ready(function() {
    oTable = $('#users-table').DataTable({
        "processing": true,
        "serverSide": true,
        "bProcessing":false,
        "bSort":false,
        "ajax": "{{ route('datatable.getcategories') }}",
        "columns": [
            {data: 'check', name: 'check'},      
            {data: 'name', name: 'name'},
           // {data: 'description', name: 'description'},
            {data: 'count', name: 'count'},
            {data: 'action', name: 'action'}        
        ],
        language: { search: "" },
    });

    $('.dataTables_filter input[type="search"]')
        .attr('placeholder','  Search...');
});

显然,您通过将serverSide设置为true来选择服务器端处理。 随着每一个你输入的东西在搜索字段中时,一个Ajax请求被发送到服务器与搜索字段的值,它是服务器与过滤数据集响应的任务。 但是,根据您的评论,我假设您的默认客户端处理工作较早,而您的服务器尚未准备好进行处理。 要在客户端处理过滤,您只需注释掉"serverSide": true, line,如下所示:

var oTable = $('#users-table').DataTable({
    'processing': true,
    // 'serverSide': true,// false is the default
    'bProcessing':false,
    'bSort':false,
    'ajax': "{{ route('datatable.getcategories') }}",
    'columns': [
        {data: 'check', name: 'check'},      
        {data: 'name', name: 'name'},
       // {data: 'description', name: 'description'},
        {data: 'count', name: 'count'},
        {data: 'action', name: 'action'}        
    ],
    language: { search: '' },
});

请注意,您应该使用var声明变量oTable ,以便不将其创建为全局变量( var oTable = …; )。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM