我遇到了jquery datatable分页问题(服务器端处理)。
例如,我在数据库中有24
条记录。计数正确显示,总分页也正确显示。
当我点击Next or 2nd page
时,它会根据显示页面长度显示记录。
此处3rd Page
最后4条记录未显示。
这里我的服务器端代码是这样的
$this->db->select("SQL_CALC_FOUND_ROWS user_id,user_name,email", FALSE);
$this->db->from("users");
$sTable="users";
// Data set length after filtering
$this->db->select('FOUND_ROWS() AS found_rows');
$iFilteredTotal = $this->db->get('users')->row()->found_rows;
// Total data set length
$iTotal = $this->db->count_all($sTable);
// Output
$output = array(
'sEcho' => intval($sEcho),
'iTotalRecords' => $iTotal,
'iTotalDisplayRecords' => $iFilteredTotal,
'aaData' => array()
);
客户端代码就像这样
$(document).ready(function () {
$('#data_appraiser').dataTable({
"bProcessing": true,
"bServerSide": true,
"oLanguage": {
"sProcessing": imgsrc,
},
//"aaData": data.aaData,
"iDisplayLength": 10,
"aLengthMenu": [
[10, 25, 50],
[10, 25, 50] // change per page values here
],
"aaSorting": [[0, 'asc']],
"sServerMethod": "POST",
"sAjaxSource": "appraiserlistajaxdata",
"sPaginationType": "full_numbers"
"aoColumns": [
{ "mData": "id" },
{ "mData": "appraiser_name" },
{ "mData": "user_name" }
....
]
});
});
我检查了$iFilteredTotal
总计数。当页面更改时,值为20
。如果它在1st page
中,则值为24
。我无法解决这个问题。对不起,如果我的问题是我们的问题。任何人都可以帮我解决这个问题。感谢
答案 0 :(得分:0)
您必须分别将start和length(如$ _GET ['start'])作为偏移量和限制并应用于查询。