javascript - 如何将 dataTables 的 "aLengthMenu"值转换为 PHP 变量?

标签 javascript php jquery datatables

我在网站中使用具有以下配置的 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/

相关文章:

javascript - div 循环隐藏和显示

javascript - 如何保持对象的属性与java脚本中给定对象的顺序相同?

javascript - 当 slider 中的图像处于事件状态时显示 div

javascript - PHP 查询执行没有错误但返回计数 0

javascript - $.when(ajaxCall) 与成功

Javascript自动更新页面?

php - 什么时候应该使用 Doctrine ORM,什么时候应该使用 zend-db-table?

php - 如何只选择最新添加的记录避免重复

javascript - 为什么我的 for 循环卡住了?

javascript - Bootstrap下拉菜单点击后消失