DataTables未应用每页筛选
DataTables Not Applying per page filtering
我正在尝试使用DataTables服务器端处理
当前我将返回1000行(作为显示),即使显示设置为10、25等
jQuery:
$(document).ready(function() {
$('#paginatedTableSS').dataTable( {
"processing": true,
"serverSide": true,
"ajax": "script.php"
} );
} );
script.php:
$i = 0;
$test = array();
$test['draw'] = 1;
$test['recordsTotal'] = 200000;
$test['recordsFiltered'] = 8;
$test['data'] = array();
while($i<=20){
array_push($test['data'], ['test1 ' . $i, 'test2 ' . $i, 'test3 ' . $i, 'test4 ' . $i]);
$i=$i+1;
}
echo json_encode($test);
我的最终目标是将start
传递给脚本,以便脚本可以使用它返回正确的数据。但我认为,目前我需要解决上述问题,然后才能继续前进。但我不确定它出了什么问题,也不知道如何调试它。
aaData
似乎表明您正在使用遗留数据表。如果是这样的话,那么就缺少了iTotalRecords
、iTotalDisplayRecords
和sEcho
。
$test['iTotalRecords'] = count($test['aaData']);
$test['iTotalDisplayRecords'] = count($test['aaData']);
$test['Echo'] = $_REQUEST['sEcho'];
参见http://legacy.datatables.net/usage/server-side
如果您不使用遗留数据表,则需要使用data
、records
和recordsFiltered
(如链接中所述)
编辑
表之所以显示1000行,是因为这是您返回的行数。使用length
和start
参数来确定返回哪些行,即
$start = (isset($_REQUEST['start']) && is_numeric($_REQUEST['start']))
? $_REQUEST['start'] : 0;
$length = (isset($_REQUEST['length']) && is_numeric($_REQUEST['length']))
? $_REQUEST['length'] : 100;
$test = array('data'=>array(), 'recordsTotal', 'draw', 'recordsFiltered');
for($i=$start; $i<=$length; $i++) {
array_push($test['data'], array('id'=>$i,'date'=>$i,'status'=>$i,'options'=>$i));
}
$test['recordsTotal'] = 200000;
$test['draw'] = 1;
$test['recordsFiltered'] = count($test['data']);
echo json_encode($test);
相关文章:
- 拉力赛应用程序 SDK 2.0:无法按日期筛选
- 在客户端应用程序中按角色筛选UI的策略
- Datatables-仅应用于某些表的筛选器
- 如何将筛选器应用于特定的数据表
- Rally自定义应用程序复选框筛选器不工作
- 在页面加载时清除/重新应用表分类器筛选
- 使用 filterBy() 应用筛选器时,从 ExtJs 存储中清除筛选器的最快方法
- 多次应用日期筛选器
- 如何筛选主干.js集合和重新呈现应用视图
- 如何在 Ember 应用中实现嵌套全局筛选器
- 需要将应用于图像的筛选器样式转换为特定的 JSON 格式
- 如何使用$.grep()应用多个筛选器
- 筛选时,ng中应用的条件类重复使用$index不一致
- 使用IE筛选器时不应用悬停样式,并且无法单击元素
- 如何使用Sencha触摸应用程序在列表中按id进行筛选
- Backgrid筛选器在主干应用程序中不起作用
- DataTables未应用每页筛选
- 在一个位置显示应用于多个图形的筛选器
- 如何使用淘汰同时应用筛选和分页
- 修改筛选器,使其仅应用于表中的可见行