我在网站中使用具有以下配置的 dataTables 表:
$('#search-table').dataTable({
"dom": "<'box-content'<'col-md-4'l><'col-md-8 text-right'f><'clearfix'>>rt<'box-content'<'col-md-6'i><'col-md-6 text-right'p><'clearfix'>>",
"aaSorting": [[ 6, "desc" ]],
"aoColumnDefs": [
{ 'bSortable': false, 'aTargets': [ 7, 8 ] }
],
"aLengthMenu": [[10, 25, 50, 100, -1], [10, 25, 50, 100, "All"]],
"iDisplayLength": 50,
"pagingType": "full_numbers",
"oLanguage": {
"sSearch": 'Filter within results: ',
"sLengthMenu": '_MENU_'
}
});
我想知道如何获取当前选择的“aLengthMenu”的值并将其保存为 PHP 变量。
默认情况下,将显示表格的前 50 行,如我们在“iDisplayLength”中看到的那样。那么我们应该可以将这个数字作为变量来获取。
然后,当用户将 View 更改为 10(或 25、或 100 等)时,变量将更改为相应的数字。
非常感谢!
最佳答案
我认为您正在寻找的是 page.len()
API 调用,它可以让您随时查看页面长度。 http://datatables.net/reference/api/page.len()
我相信,但不确定,当页面长度更改时会触发 page
事件。 http://datatables.net/reference/event/page
您可以编写一个方法来监听页面事件,然后找出显示的记录数,然后通过 AJAX 将该数据发送到服务器进行存储或处理。
简单的例子:
var table = $('#data-table').DataTable();
$('#data-table').on( 'page.dt', function(){
var len = table.page.len();
alert(len);
//Sample Post
//$.post('server.php',{len:len},function(){...});
});
编辑 我觉得我应该提到,根据您包含的选项名称,您使用的 dataTables 版本可能不是最新的。这些选项最近更改为更具可读性的格式,但我相信当前版本在技术上仍然支持命名约定。我会将选项更新为新名称,以防 future 版本的 dataTables 不支持向后兼容性。
关于javascript - 如何将 dataTables 的 "aLengthMenu"值转换为 PHP 变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25452119/