Javascript-为什么服务器端分页对我的jquery datatables表不起作用?
作者:互联网
我正在尝试使服务器端分页正常工作,但它根本不起作用.我一直在寻找解决问题的方法,但是我发现的所有内容几乎都与我相同,这是行不通的.
我可能在这里遗漏了一些明显的东西,我没有使用过很好的数据表,我发现它的说明和示例太混乱了.
这是我的Javascript代码-它是作为内联Javascript代码从PHP文件内部打印的,因此为了简洁起见,我不得不替换PHP部分:
var display_start = 1;
var display_length = 10;
$( '#andrux' ).dataTable({
'sPaginationType': 'full_numbers',
'processing': true,
'serverSide': true,
'bSort': false,
'ajax': '/bp-subgroups.php?group=3&iDisplayStart=' + display_start + '&iDisplayLength=' + display_length
});
根据我所看到的示例,我什至不应该在请求中附加iDisplayStart或iDisplayLength变量,但这是我不将全部记录加载到表中的唯一方法.
我知道在这种情况下会发生什么,我总是在请求中发送1和10作为显示开始和显示长度,我想问题应该是,如何根据我所在的页面更新这些内容?是否应该随每个请求自动更新它们?
这是我从PHP代码发送的输出:
$output = array(
"sEcho" => intval( $_GET['sEcho'] ),
"iTotalRecords" => $iTotal,
"iTotalDisplayRecords" => $iTotal,
"aaData" => array()
);
当然,aaData正在用我的行加载,为简洁起见,我只包括了上面的内容,此外,我可以看到数据很好,但是我无法使其分页.
有经验的人可以看到我在做什么吗?
这已经让我发疯了,但是我不想为此使用其他插件,我不喜欢放弃!
感谢大家.
解决方法:
好吧,因为没有人对此提供帮助,所以我只需要耗尽所有资源并自己找到解决方案.
答案在这里:http://www.datatables.net/examples/data_sources/server_side.html
在“服务器端脚本”选项卡的最底部,它们包括SSP类.因为我在这里使用WordPress,所以我错误地认为我不需要该类,因为我的查询是通过$wpdb或其他WP核心函数进行的,此外,我正在在线阅读所有文档,甚至没有想到那堂课-如果我遵循应该起作用的其余说明,那我为什么要这么做.
长话短说,我对SSP类进行了一些修改以满足我的需要,然后使用了示例页面几乎相同的设置,最后使我的数据表正确分页.
作为参考,我试图将类似以下的数组返回到数据表:
array(
"sEcho" => intval( $_GET['sEcho'] ),
"iTotalRecords" => $iTotal,
"iTotalDisplayRecords" => $iTotal,
"aaData" => $my_data
);
事实证明,我需要像这样返回数组:
array(
"draw" => intval( $request['draw'] ),
"recordsTotal" => intval( $recordsTotal ),
"recordsFiltered" => intval( $recordsFiltered ),
"data" => $my_data
);
可能只是我一个人,但是数据表虽然是一个不错的插件,但确实需要在文档上做更多的工作.我发现某些参数在一个地方被找到,而在另一地方被发现了,就像上面的例子一样.
标签:pagination,datatables,javascript,php 来源: https://codeday.me/bug/20191120/2046590.html