点燃数据表,Codeigniter分页/搜索问题

时间:2018-02-12 00:46:08

标签: jquery codeigniter datatables codeigniter-3

我正试图在测试情况下运行IgnitedDatatables。我可以使用我的数据填充所有行:

  1. 寻呼系统不起作用。显示8页,但所有(72)项都在1页上。尽管我在帖子数据中看到长度为10,但好像length似乎没有得到尊重。如果我点击,例如,第2页,我可以看到正在进行的ajax调用,但它返回在页面加载时加载的相同信息。
  2. 搜索功能不执行任何操作。如果我在其中键入内容,则返回在页面加载时加载的相同信息。
  3. 没有控制台错误。我正在使用DataTables 1.10.15,用于bootstrap的响应版本。

    我通常在调试方面做得很好,但我正在处理一个limited documentation的第三方库。

    控制器:

    class Test extends MY_Backend {
    
        public function index() {
    
            $this->tpl->head();
            $this->tpl->body();
            $this->load->view('test');
            $this->tpl->footer();
        }
    
        public function ajax() {
    
            $this->load->library('datatables');
    
            $this->datatables
                    ->select('id, project_name, created, last_modified')
                    ->unset_column('id')
                    ->from('projects')
                    ->add_column('actions', 'Hello World!');
    
            $result = $this->datatables->generate('json', '');
    
            echo $result;
        }
    
    }
    

    View / JS(在标头中加载JS + JQUERY):

    <script>
        $(document).ready(function () {
            $('#example').DataTable({
                "processing": true,
                "serverSide": true,
                "pageLength": 10,
                "ajax": "/neou_cms/test/ajax",
                "aoColumns": [
                    {"mData": "project_name"},
                    {"mData": "created"},
                    {"mData": "last_modified"},
                    {"mData": "actions"}
                ],
            });
        });
    </script>
    
    <table id="example" class="display" cellspacing="0" width="100%">
        <thead>
            <tr>
                <th>Project Name</th>
                <th>Created</th>
                <th>Modified</th>
                <th>Actions</th>
            </tr>
        </thead>
    </table>
    

1 个答案:

答案 0 :(得分:1)

我想在1.10和1.10.15之间的某个数据表开始使用$_GET作为默认值。使用示例here我可以将ajax类型更改为POST,一切都按预期工作。

<script>
    $(document).ready(function () {
        $('#example').DataTable({
            "processing": true,
            "serverSide": true,
            "pageLength": 10,
            "ajax": {
                "url": "/neou_cms/test/ajax",
                "type": "POST"
            },
            "columns": [
                {"data": "project_name"},
                {"data": "created"},
                {"data": "last_modified"},
                {"data": "actions", "orderable": false, "searchable": false}
            ],

        });
    });
</script>