jquery数据表服务器端分页不起作用
Posted
技术标签:
【中文标题】jquery数据表服务器端分页不起作用【英文标题】:jquery datatable server-side pagination not working 【发布时间】:2016-11-07 20:23:48 【问题描述】:我正在尝试使用服务器端处理在 php 项目上实现 jquery datatables,但分页不起作用,并且我在 firebug 控制台中没有错误。
页面简单直接,html代码如下:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<link rel="stylesheet" type="text/css" href="https://cdn.datatables.net/v/dt/jq-2.2.3/dt-1.10.12/datatables.min.css"/>
<script type="text/javascript" src="https://cdn.datatables.net/v/dt/jq-2.2.3/dt-1.10.12/datatables.min.js"></script>
</head>
<body>
<table class="table">
<thead>
<tr>
<th col-data="item_id">Item Id</th>
<th col-data="name">Name</th>
</tr>
</thead>
</table>
<script type="text/javascript">
$(document).ready(function()
var dataTable = $('.table').DataTable(
"processing": true,
"serverSide": true,
"buttons": [],
"order": [],
"ajax":
url :" url('stock_acc_get') ", // json datasource
type: "post",
);
);
</script>
</body>
</html>
这是发布在服务器上的数据(在firebug控制台中查看):
columns[0][data] 0
columns[0][name]
columns[0][orderable] true
columns[0][search][regex] false
columns[0][search][value]
columns[0][searchable] true
columns[1][data] 1
columns[1][name]
columns[1][orderable] true
columns[1][search][regex] false
columns[1][search][value]
columns[1][searchable] true
draw 1
length 10
search[regex] false
search[value]
start 0
这是来自服务器的 json 响应:
"draw":1,
"recordsTotal":23,
"recordsFiltered":10,
"data": [
["100018","Test Acc"],["100019","Test Acc 2"],
["100020","Test Acc 3"],["5845645","Optional 1"],
["56456456","Optional 2"],["541515","Optional 3"],
["845812","Optional 4"],["103646","Belte Setesdal"],
["103647","Belte Setesdal"],["103681","Belte Sigdal-Eggedal"]
]
页面设置为显示 10 条记录。 记录总数为 23,它不会创建导航到下一页的链接。我附上了一张照片以便更好地理解,下一个/上一个按钮被禁用,它告诉我只有一页。
【问题讨论】:
【参考方案1】:recordsFiltered
应该表示通过搜索框(以及任何其他)过滤器的记录数,而不是页面上的记录数。
您告诉 DataTables 只有 10 条相关记录,因此它不会尝试为其他 13 条设置分页。
请参阅第三个 DataTables FAQ post(在服务器端处理类别中)或该帖子中链接的 Server-side processing 页面以获取更多信息。
【讨论】:
链接到FAQ post
真的很有帮助。【参考方案2】:
主要是recordsFiltered
用于创建分页。所以在这个参数recordsFiltered
上传递你表中的数据总数
【讨论】:
【参考方案3】:示例: A)用户表中的总记录100 B) 搜索/默认/匹配的第 70 行 C) 每页显示限制为 10 行; 所以, 记录总数=> C 记录过滤=B
主要是 recordsFiltered 用于创建分页。
【讨论】:
以上是关于jquery数据表服务器端分页不起作用的主要内容,如果未能解决你的问题,请参考以下文章