为什么服务器端分页不适用于我的 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
);
可能只有我一个人,但数据表虽然是一个很好的工作插件,但确实需要在文档上做更多的工作。我发现一些参数在一个地方以一种方式找到,在其他地方以另一种方式找到 - 就像上面的例子一样。
我正在尝试使服务器端分页工作,但它就是行不通。我一直在寻找解决我的问题的方法,但我发现的一切都与我所拥有的几乎相同,这是行不通的。
我可能在这里遗漏了一些明显的东西,我没有使用过很好的数据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
);
可能只有我一个人,但数据表虽然是一个很好的工作插件,但确实需要在文档上做更多的工作。我发现一些参数在一个地方以一种方式找到,在其他地方以另一种方式找到 - 就像上面的例子一样。