伺服器端處理

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 字串 這是要在 SearchPane 選項中顯示給使用者的值。
searchPanes.options[field][i].value 字串 這是要在 SearchPane 選項中用於篩選、排序和搜尋的值。
searchPanes.options[field][i].total 整數 這是此值在給定欄位中的條目總數。
searchPanes.options[field][i].count 整數 這是給定欄位中符合目前 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
            },
            ...
        ]
    }
},
...