DataTable是一個非常流行的jQuery插件,它可以幫助我們快速地呈現(xiàn)和操作表格數(shù)據(jù)。當(dāng)涉及到處理大量數(shù)據(jù)時(shí),分頁就非常重要了。本文將介紹如何使用DataTable分頁Json數(shù)據(jù)。
首先,我們需要準(zhǔn)備一個后臺API,返回包含分頁信息的JSON數(shù)據(jù)。例如,我們可以使用PHP和MySQL來查詢數(shù)據(jù)并返回JSON響應(yīng):
//連接數(shù)據(jù)庫
$conn = new mysqli($servername, $username, $password, $dbname);
//查詢記錄總數(shù)
$result = $conn->query("SELECT count(*) as total FROM employees");
$row = $result->fetch_assoc();
$total = $row['total'];
//分頁查詢數(shù)據(jù)
$start = $_GET['start'];
$length = $_GET['length'];
$sql="SELECT * FROM employees LIMIT $start, $length";
$result = $conn->query($sql);
//返回JSON數(shù)據(jù)
$data = array();
while($row = $result->fetch_assoc()) {
$data[] = $row;
}
$response = array(
"draw" =>$_GET['draw'],
"recordsTotal" =>$total,
"recordsFiltered" =>$total,
"data" =>$data,
);
echo json_encode($response);
注意,我們在響應(yīng)中包含了總記錄數(shù)(recordsTotal)和過濾后的記錄數(shù)(recordsFiltered),這是一個很好的做法,可以告訴用戶數(shù)據(jù)是否被過濾。
接下來,在前端頁面中,我們將使用DataTable來呈現(xiàn)數(shù)據(jù)。設(shè)置DataTable時(shí),我們需要指定ajax選項(xiàng)來獲取后臺API的響應(yīng):
$('#example').DataTable({
"processing": true,
"serverSide": true,
"ajax": {
"url": "api.php",
"type": "GET",
"data": function (d) {
d.start = d.start;
d.length = d.length;
d.draw = d.draw;
},
"dataType": "json"
},
"columns": [
{ "data": "id" },
{ "data": "name" },
{ "data": "salary" },
{ "data": "age" },
{ "data": "position" }
]
});
我們在ajax選項(xiàng)中指定了API的url,以及請求參數(shù)。我們還需要在columns選項(xiàng)中指定每一列的數(shù)據(jù)源,這里我們使用JSON響應(yīng)中的列名。
至此,我們已經(jīng)完成了使用DataTable分頁Json數(shù)據(jù)的步驟。如果您的數(shù)據(jù)已經(jīng)存儲在JSON格式中,甚至可以省略后臺API,直接將數(shù)據(jù)作為DataTable的數(shù)據(jù)源,這樣可以更進(jìn)一步簡化代碼。