数据表发送当前页码

时间:2019-10-15 14:54:42

标签: javascript jquery laravel datatable

我一直试图通过覆盖名为 pgno

的变量来将当前页码发送到服务器

这是我的代码:

function fill_datatable(status='',pgno='') 
{
    var pgno = 0;
    table = $('.tb_scoin_available').DataTable({
        "processing": true,
        "serverSide": true,
        "ordering"  : false,
        "infoCallback": function( settings, start, end, max, total, pre ) {
            var api = this.api();
            var pageInfo = api.page.info();
            pgno = pageInfo.page+1;
            return pgno;
        },
        "ajax":{
            "url": base_url+'/adminPath/management_scoin/ajaxGetScoinAvailable',
            "type": "POST",
            "data":{ _token: csrf_token, status : status,pgno : pgno}
        },
        "columnDefs": [ { orderable: false} ],
        "columns": [
            { "data": "no" },
            { "data": "created_at" },
            { "data": "serial_scoin" },
            { "data": "unit_scoin" },
            { "data": "unit_scoin_desc" },
            { "data": "unit_scoin_sc" },
            { "data": "unit_scoin_idr" },
        ],

    }); 
}

当我尝试提醒infoCallback时: alert(pgno)变量已被覆盖,但是当我尝试在后端转储请求时, pgno POST给我这样的空结果:

screenshot

任何人都可以帮助我吗?

1 个答案:

答案 0 :(得分:1)

您可以使用page()函数获得表格页面,而不需要整个“ page.info”。最好在Datatable的API中进行解释:https://datatables.net/reference/api/page()

您尝试访问的方法仅是获取信息,而不是对其进行设置。这可能就是为什么它不起作用的原因。检查他们的文档以更好地了解他们的API:https://datatables.net/reference/api/page.info()

编辑:

您可以通过简单的计算获得当前页面。由于您正在使用serverSide处理,因此您已经具有开始长度。您只需要执行start / length + 1,就可以得到当前的页码。