datatables开启服务器端处理模式,分页的时候就不好使了
具体症状:
如果设置了每页的显示条数,比如20条,那么第2页的数据还是从11条开始取,求解,谢谢诸位了
第一页的数据
第二页的数据
前端配置:
var dataTable=$('#list').DataTable({
serverSide: true,
ajax: {
type:'post',
data:function(d){
d.length=20;
},
url:'data_server.php',
},
columns:[
{data:'food_id'},
{data:'food_name'},
{data:'food_price'},
{
data:function(data,type,row,meta){
return "<a href='del?id="+data.food_id+"'>删除</a>";
}
}
],
pagingType: "full_numbers",
language:{
paginate:{
first:'首页',
last:'末页',
previous:'上一页',
next:'下一页',
},
lengthMenu:"显示 _MENU_ 条记录",
zeroRecords:"未找到匹配记录",
info:"显示 _START_ 到 _END_ 的 _TOTAL_ 条记录",
infoEmpty:"显示 0 到 0 的 0 条记录",
infoFiltered:"(总共从 _MAX_ 条记录中过滤)",
search:'搜索:',
},
});
PHP代码:
try{
$pdo=new PDO("mysql:host=localhost;dbname=online","root","");
}catch(PDOException $e){
exit($e->getMessage());
}
$pdo->query("set names utf8");
$sql="select count(food_id) as total from online_food";
$stmt=$pdo->prepare($sql);
if($stmt->execute()){
$recordsTotal=$stmt->fetch(PDO::FETCH_ASSOC)['total'];
}
$sql="select food_id,food_name,food_price from online_food limit {$_POST['start']},{$_POST['length']}";
$stmt=$pdo->prepare($sql);
$list=array();
if($stmt->execute()){
while($row=$stmt->fetch(PDO::FETCH_ASSOC)){
$list[]=$row;
}
}
$data=array(
'draw'=>$_POST['draw'],
'recordsTotal'=>$recordsTotal,
'recordsFiltered'=>$recordsTotal,
'data'=>$list
);
echo json_encode($data);
版本:1.10.15