服务器端处理
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
            },
            ...
        ]
    }
},
...