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