【问题标题】:Search not functioning in DataTables using JQuery使用 JQuery 在 DataTables 中搜索不起作用
【发布时间】:2016-01-19 00:33:50
【问题描述】:

我正在尝试将数据表与搜索功能一起使用。但我不知道怎么做。请帮忙。这是我在 jQuery 中的代码。

var oTable = $('#table').DataTable({
        "dom": "Bfrtip",
        "bProcessing": true,
        "bServerSide": true,
        "sAjaxSource": '<?php echo site_url('members/viewall'); ?>',
        "sPaginationType": "full_numbers",
        "fnServerData": function (sSource, aoData, fnCallback) {
            $.ajax
            ({
                'dataType': 'json',
                'type': 'POST',
                'url': sSource,
                'data': aoData,
                'success': fnCallback
            });
        }
});

【问题讨论】:

    标签: jquery codeigniter datatables


    【解决方案1】:

    查看filtering

     table.column(0).search('what you want to filter').draw()
    
     *0 corresponds to the column index
    

    这是一个fiddle 示例

    【讨论】:

    • 这仅适用于客户端数据表,OP 正在使用服务器端
    • 我认为这也适用于客户端数据表。我认为这个功能的工作方式就像用户在搜索字段中输入一些内容,这会“触发”服务器端搜索
    • 是的,默认行为是触发搜索,但我认为 OP 在访问服务器端代码中的搜索参数时遇到问题。我并不是说你的代码是错误的——我只是说恕我直言,答案需要更多地关注传递参数。道歉。
    【解决方案2】:

    您已指定"bServerSide": true,因此默认情况下,数据表将在对sAjaxSource 中设置的URL 的请求中包含您的搜索词作为查询字符串参数Request["sSearch_0"],由您在服务器中检索它侧码。然后,您将需要合并到 db 查询中。查看发送参数的完整列表here

    假设您使用默认设置,您的搜索将在搜索框的 keyup 事件上触发,您可以通过查看 Firebug 的 Net 面板并查看 sSearch_0 参数的查询字符串来检查这一点。

    例如,从自定义按钮触发搜索就像在点击事件中调用 fnDraw() 一样简单:

    oTable.fnDraw();
    

    请注意,我为您提供了 v1.9 文档的链接。尽管您的初始化代码中有一个大写的DataTable,但语法非常接近 1.9,所以我假设您会熟悉它。 v1.10 的工作方式非常相似,但参数名称不同。 Here are the params 1.10

    【讨论】:

      猜你喜欢
      • 2016-07-29
      • 2016-09-04
      • 1970-01-01
      • 1970-01-01
      • 2021-08-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多