如何使用 jQuery dataTables 启用服务器端搜索?

Posted

技术标签:

【中文标题】如何使用 jQuery dataTables 启用服务器端搜索?【英文标题】:How to enable Server Side search with jQuery dataTables? 【发布时间】:2017-12-28 13:51:09 【问题描述】:

我正在使用Datatables 和服务器端处理来显示数据。我有大约 10000 行数据,我想限制这些数据以使其更具可读性。

我想在数据表中只显示 50 行数据。

$('#dataTable3').dataTable( 
        "sAjaxSource": "user_data.php",
        "sPaginationType":"full_numbers",
        "bProcessing": true,
        "bPaginate":true,
        "iDisplayLength": 20,       
        "aoColumns": [      
         mData: 'sno'  ,
         mData: 'dob'  ,
         mData: 'fullname' ,
         mData: 'email']      
    );

服务器端 PHP 脚本将行数限制为 50,如下所示:

SELECT * FROM users order by id desc limit 50

现在,问题是如果我想搜索特定用户,它是从数据表的 50 行中搜索。我也想在服务器端搜索。知道怎么做吗?

【问题讨论】:

设置 serverSide:true。这样一来,所有的控制权都交给了服务器。 datatables.net/reference/option/serverSide 和datatables.net/manual/server-side 您还尝试过其他方法吗? 【参考方案1】:

在将服务器端处理与 DataTables 一起使用时,您必须考虑一些规则。 在每次 load 数据表执行时,它会向您的服务器发送一些参数,并期望其他一些参数返回以识别 dataquantityfilters申请。

您需要阅读datatables 发送的请求中的内容,并将它们应用于您的过滤器和数据库上的数据提取。

您可以在this 图像中查看数据表如何发送请求。

正如@Bindrid所说,您可以查看here这些参数的详细定义。 有一个很好的教程 here 和 here,您可以检查如何使用 PHP 来做到这一点。当然,datatables 文档中也有 example。

【讨论】:

以上是关于如何使用 jQuery dataTables 启用服务器端搜索?的主要内容,如果未能解决你的问题,请参考以下文章

标题/数据列未与 jQuery dataTables、bootstrap 2.3.2 对齐并启用水平滚动

jQuery dataTables:基于字符串的过滤器

如何使用 Jquery Datatable 仅对当前页面进行排序

如何使用 jQuery DataTables 插件在特定列中搜索?

保持启用的复选框在 jQuery DataTables 的顶部,尽管排序顺序

启用了 Scroller 且 Bootstrap5 样式的 JQuery Datatable 导致意外的垂直滚动条