首页 文章

jQuery Datatable - 使用Php的服务器端处理数据分页

提问于
浏览
0

我有jquery datatable分页的问题(服务器端处理) .

例如,我在数据库中有 24 条记录 . 计数正确显示,总分页也正确显示 .

enter image description here

当我点击 Next or 2nd page 时,它会根据显示页面长度显示记录 .
enter image description here

这里 3rd Page 最后4条记录未显示 .

这里我的服务器端代码是这样的

$this->db->select("SQL_CALC_FOUND_ROWS user_id,user_name,email", FALSE);

        $this->db->from("users");
     $sTable="users";
        // Data set length after filtering
        $this->db->select('FOUND_ROWS() AS found_rows');
        $iFilteredTotal = $this->db->get('users')->row()->found_rows;

        // Total data set length
        $iTotal = $this->db->count_all($sTable);


        // Output
        $output = array(
            'sEcho' => intval($sEcho),
            'iTotalRecords' => $iTotal,
            'iTotalDisplayRecords' => $iFilteredTotal,
            'aaData' => array()
        );

客户端代码就像这样

$(document).ready(function () {
        $('#data_appraiser').dataTable({
            "bProcessing": true,
            "bServerSide": true,
            "oLanguage": {
                "sProcessing": imgsrc,
            },
            //"aaData": data.aaData,
             "iDisplayLength": 10,
             "aLengthMenu": [
                             [10, 25, 50],
                             [10, 25, 50] // change per page values here
                         ],
                "aaSorting": [[0, 'asc']],
                "sServerMethod": "POST",
                    "sAjaxSource": "appraiserlistajaxdata",

            "sPaginationType": "full_numbers"
            "aoColumns": [
                { "mData": "id" },
                { "mData": "appraiser_name" },
                { "mData": "user_name" }
               ....
            ]        
        });
    });

我检查了 $iFilteredTotal 总计数 . 当页面更改时,值为 20 . 如果它在 1st page 中,则值为 24 . 我无法解决此问题 . 对不起,如果我的问题是我们的问题 . 任何人都可以帮我解决这个问题 . 谢谢

1 回答

  • 0

    您必须分别将start和length(如$ _GET ['start'])作为偏移量和限制并应用于查询中 .

相关问题