iDisplayLenght和iDisplayStart未发布到数据表的服务器端脚本

时间:2017-01-13 07:52:29

标签: jquery json codeigniter datatable

我在codeigniter 2.2项目中使用数据表,我必须添加一些新的功能。在json响应中没有发回任何数据。正在执行的查询是:

 SELECT SQL_CALC_FOUND_ROWS reference, narration, accountnumber, bank_name bank, amount FROM (`vb`) JOIN `bank_data` ON `bank_data`.`bank_code` =`vb`.`destinationcode` LIMIT 0

问题是limit参数的值为0

以下代码段显示了获取分页所需的限制值的代码,因为我的大型数据集超过22000条记录:

  // Paging
        if(isset($iDisplayStart) && $iDisplayLength != '-1')
        {
            $this->db->limit($this->db->escape_str($iDisplayLength), $this->db->escape_str($iDisplayStart));
        }

$iDisplayStart$iDisplayLength参数来自

$iDisplayStart = $this->input->get_post('iDisplayStart', true);



$iDisplayLength =$this->input->get_post('iDisplayLength', true);

挑战在于这些值未发布到服务器端脚本

我的回答JSON是:

{sEcho: 0, iTotalRecords: 23048, iTotalDisplayRecords: 0, iDisplayLength: false, iDisplayStart: false,…}

从上面可以看出,iDisplayLengthiDisplayStart都是false,因此会导致select语句中的限制值为0

我的html初始化数据表是

$('#datatable_tabletools').dataTable({
        "bServerSide":true,
                "bProcessing": false,
                "sServerMethod": "POST",
                 "iDisplayLength": 25,
                 "iDisplayStart":0,

                  // Load data for the table's content from an Ajax source
        "ajax":{'url':"<?php echo APP_URL.'/index.php/payments/getTable2';?>",
              'type':'POST',},
               "aoColumns": [

                        { "data": "reference" },
                        { "data": "narration" },
                        { "data": "accountnumber" },
                        { "data": "amount" },
                        { "data": "bank_name" }

                ],

设置$iDisplayStart$iDisplayLength参数但未发布,我该如何纠正?感谢

1 个答案:

答案 0 :(得分:-1)

{
render: function (data, type, row, meta) 
return meta.row + meta.settings._iDisplayStart + 1;
}