服务器端处理

DataTables 提供一个 服务器端处理用于处理大型数据集。为了能够在客户端显示所有筛选选项,SearchPanes 需要与服务器端处理进行特殊整合。SearchPanes 1.1 起便已支持这一功能。

客户端

在客户端,SearchPanes 在与服务器端处理配合使用时不需要任何特殊配置(除了使用 serverSide 启用服务器端处理)。

服务器端

我们通过 Editor 服务器端库提供了 SearchPanes 服务器端处理集成。这些库属于开源,不需要 Editor 许可证即可使用。它们可以提供一种快速查询你的数据库并返回 DataTables 和 SearchPanes 所需信息的方式。我们支持的平台的完整文档在此处提供

请注意,为 DataTables 示例提供的演示 ssp.class.php 文件不支持 SearchPanes。

同样值得注意的是,自定义窗格目前不受 SearchPanes 中的服务器端处理(serverSide)支持。

实现细节

已发送参数

在使用服务器端处理向服务器发出请求时,除 服务器端手册 中记录的参数外,SearchPanes 将发送以下数据,以便让服务器知道需要什么数据

参数名称 类型 描述
searchPanes 对象 该对象为每个已进行选择字段持有属性。该属性反过来持有字符串数组,该字符串数组填充了针对该字符串的选择内容。
searchPanes[field] 对象 索引对象,持有该窗格中已进行的所有选择内容。如果 field 是已进行选择字段的名称,则为这种情况。该对象的键是选择内容的索引,对应的值是该已选择选项的字符串值。

返回的数据

一旦 DataTables 发起数据请求,将上述参数发送到服务器,它便会期望返回 JSON 数据,其中 searchPanes 的参数与 服务器端手册 中记录的参数外,还有以下参数

参数名称 类型 描述
searchPanes.options[field][i] 数组 此数组包含给定字段的 SearchPane 中记录所有必要数据。
searchPanes.options[field][i].label 字符串 此值为在搜索窗格选项中向用户显示的值。
searchPanes.options[field][i].value 字符串 此值为在搜索窗格选项中用于筛选、排序和搜索的值。
searchPanes.options[field][i].total int 此值在给定的字段中条目的总数。
searchPanes.options[field][i].count int 给定字段中与当前 where 条件匹配的条目数量。

如何使用以下选项来返回数据的示例如下所示。

"searchPanes":{
    "options":{
        "users.first_name":[
            {
               "label":"Aaron",
               "total":"1",
               "value":"Aaron",
               "count":"1"
            },
            {
               "label":"Alex",
               "total":"1",
               "value":"Alex",
               "count":0
            },
            {
               "label":"Alexa",
               "total":"1",
               "value":"Alexa",
               "count":0
            },
            ...
        ]
    }
},
...