Ajax datatable插件paginate

时间:2017-03-16 01:54:12

标签: javascript php ajax datatable

我有这个代码,datatable插件

$('#tbl_loket').createTable( {
    "ajax": "<?=site_url('penilaian/report/get_data')?>",
    "columns": [
        { "data": "date_in" },
        { "data": "nama" },
        { "data": "keterangan" },
        { "data": "sangat_puas" },
        { "data": "puas" },
        { "data": "tidak_puas" },
        { "data": "total" },
        { "data": "nilai" },
    ],
    "bPaginate": true,
    "bLengthChange": true,
    "bFilter": false,
    "bInfo": true,
    "bAutoWidth": false,
    "pagingType": "full_numbers",
    "paging": true,
} );

这是我的表截图

table screenshot

问题:如何更改每页的项目数?

4 个答案:

答案 0 :(得分:0)

您应该在代码中设置iDisplayLength

"iDisplayLength": 10

这里是Source

因此,您的来源应该看起来像

$('#tbl_loket').createTable( {
    "ajax": "<?=site_url('penilaian/report/get_data')?>",
    "columns": [
        { "data": "date_in" },
        { "data": "nama" },
        { "data": "keterangan" },
        { "data": "sangat_puas" },
        { "data": "puas" },
        { "data": "tidak_puas" },
        { "data": "total" },
        { "data": "nilai" },
    ],
    "bPaginate": true,
    "bLengthChange": true,
    "bFilter": false,
    "bInfo": true,
    "bAutoWidth": false,
    "pagingType": "full_numbers",
    "paging": true,
    "iDisplayLength": 10
} );

答案 1 :(得分:0)

如果你只想要分页......只需输入此代码即可。

$("#table_id").DataTable({
    "paging":true,
    "dom": 'lBfrtip',
    "scrollX": true,    
}); 

如果您从ajax获取数据。使用此代码...... 根据你做出改变

$.ajax({
    type: 'POST',
    url         : YOUR_URL,
    data        : {'ids':ids,'start':start, 'end':end},
    timeout     : 30000,
    success     : function (e) {
        $("#table_id").DataTable({
            "paging":true,
            "dom": 'lBfrtip',
            "scrollX": true,    
        });                 
    }       
});

再使用一件事

<?php ?> instead of <?= ?> 

答案 2 :(得分:0)

对于DataTables版本1.10.5及更新版

<table data-page-length='25'>
</table>

对于DataTables版本1.10及更新版本

"pageLength": 50

对于早于1.10版本的DataTable

"iDisplayLength": 50

如果所有这些都不起作用,您能否提供ajax回报?你的ajax返回包含recordsFiltered和recordsTotal吗?它可能返回错误的值。例如,它表示显示15条记录中的1-10条,但第1页有15条记录,我假设第2页上没有记录?

答案 3 :(得分:0)

您好像使用旧版本,因此您需要使用:

$('#tbl_loket').createTable( {
   "ajax": "<?=site_url('penilaian/report/get_data')?>",
    "columns": [
        { "data": "date_in" },
        { "data": "nama" },
        { "data": "keterangan" },
        { "data": "sangat_puas" },
        { "data": "puas" },
        { "data": "tidak_puas" },
        { "data": "total" },
        { "data": "nilai" },
    ],
    "bPaginate": true,
    "bLengthChange": true,
    // Set to 10 results
    "pageLength" : 10,
    // Optional, it'll include '10' in the dropdown menu
    "lengthMenu": [ [10, 25, 50, -1], [10, 25, 50, "All"] ]
    "bFilter": false,
    "bInfo": true,
    "bAutoWidth": false,
    "pagingType": "full_numbers",
    "paging": true,
});

别忘了使用&#39; draw()&#39;更改表格后的方法 - 如果您没有立即反映这些更改。