我一直试图通过覆盖名为 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给我这样的空结果:
任何人都可以帮助我吗?
答案 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,就可以得到当前的页码。