为什么服务器端分页不适用于我的 jquery 数据 tables table?

Why doesn't server side pagination works for my jquery datatables table?

我正在尝试使服务器端分页工作,但它就是行不通。我一直在寻找解决我的问题的方法,但我发现的一切都与我所拥有的几乎相同,这是行不通的。

我可能在这里遗漏了一些明显的东西,我没有使用过很好的数据table,我发现它的说明和示例有点太混乱了。

这是我的 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 变量附加到我的请求中,但这是我不将完整记录加载到我的 table.

我知道在这种情况下会发生什么,我总是在我的请求中发送 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

在 "Server-side script" 选项卡的最底部,它们包括 SSP class。因为我在这里使用 WordPress,所以我错误地认为我不需要 class,因为我的查询是通过 $wpdb 或其他 WP 核心功能进行的,另外,我正在阅读所有在线文档,甚至没有考虑研究一下 class - 如果我遵循了应该有效的其余说明,我为什么要研究。

长话短说,我对 SSP class 做了一些修改以满足我的需要,然后使用与示例页面几乎相同的设置,最后让我的数据表正确分页。

作为参考,我正在尝试 return 像下面这样的数组到数据表:

array(
    "sEcho" => intval( $_GET['sEcho'] ),
    "iTotalRecords" => $iTotal,
    "iTotalDisplayRecords" => $iTotal,
    "aaData" => $my_data
);

事实证明我需要 return 这样的数组:

array(
    "draw"            => intval( $request['draw'] ),
    "recordsTotal"    => intval( $recordsTotal ),
    "recordsFiltered" => intval( $recordsFiltered ),
    "data"            => $my_data
);

可能只有我一个人,但数据表虽然是一个很好的工作插件,但确实需要在文档上做更多的工作。我发现一些参数在一个地方以一种方式找到,在其他地方以另一种方式找到 - 就像上面的例子一样。