【问题标题】:Ignited Datatables, Codeigniter paging/search issue点燃的数据表,Codeigniter 分页/搜索问题
【发布时间】:2018-07-22 03:04:12
【问题描述】:

我正在尝试让IgnitedDatatables 在测试环境中启动并运行。但是,我可以用我的数据填充所有行:

  1. 寻呼系统不工作。显示 8 页,但所有 (72) 项都在 1 页上。尽管我在帖子数据中看到长度为 10,但似乎 length 并未受到尊重。例如,如果我单击第 2 页,我可以看到正在进行 ajax 调用,但它返回的信息与页面加载时加载的信息相同。
  2. 搜索功能不执行任何操作。如果我在其中输入内容,则返回的信息与页面加载时加载的信息相同。

没有控制台错误。我正在使用 DataTables 1.10.15,用于引导的响应版本。

我通常很擅长调试,但我正在使用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;
    }

}

视图/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>

【问题讨论】:

  • 它似乎没有得到太多维护/更新。它的要求是:jQuery 1.5+、DataTables 1.10+、CodeIgniter “Reactor”(如果我没记错的话,它是 CI 1.7),所以看起来你需要查看源代码才能让它在 CI 3 上运行。 x,因为它基于旧的/已弃用的库
  • 似乎是这样。很奇怪,因为当我看到一个关于它的问题时,我想我会尝试一下。似乎新方法是获取而不是发布,因此没有一个变量被填充。
  • 我没有查看源代码,但最初它是由 Phil Sturgean 编写的,他实际上是 2009/10 年“reactor”分支的 6 位 CI 开发人员之一。所以我确信它当时工作得很好。现在是 100 年后:2018 年
  • 我认为它从大约几年前开始更新。尽管如此,在简单的 js 修改以切换 get to post 后,它似乎工作正常。我可能会看看是否支持列的回调,如果不支持,我会更新代码并尝试在 git 上推送一些东西。
  • 很好,你找到了解决方案,希望它对“问题滚动”用户和其他人有所帮助。

标签: jquery codeigniter datatables codeigniter-3


【解决方案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>

【讨论】:

    猜你喜欢
    • 2015-03-23
    • 2014-02-13
    • 2014-02-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-15
    • 2012-05-15
    • 1970-01-01
    相关资源
    最近更新 更多