编程语言
首页 > 编程语言> > Javascript-为什么服务器端分页对我的jquery datatables表不起作用?

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