如何使用 pjax 实现 Codeigniter 默认分页

Posted

技术标签:

【中文标题】如何使用 pjax 实现 Codeigniter 默认分页【英文标题】:How to Implement Codeigniter Default pagination with pjax 【发布时间】:2015-07-13 10:46:15 【问题描述】:

我想用 codeigniter 实现 Pjax jquery 库,其他功能工作正常。但是当我添加它时,它会分页并且它不起作用。当我单击分页按钮而不是其更改 url 但突然在使用普通 php 而不是 ajax 重新加载后..

$this->load->library('pagination');

    $FilterData = $this->input->get();

    $config = bootstrapPagination();
    $config['base_url'] = main_url('members');

    $config["total_rows"] = $this->member->browse_search_total($FilterData);
    $config["per_page"] = PER_PAGE;
    $config['reuse_query_string'] = TRUE;
    $this->pagination->initialize($config);

    $data["links"] = $this->pagination->create_links();

    $data['members'] = $this->member->browse_search($FilterData, PER_PAGE, $offset);


    $this->pagination->initialize($config);

    $data['links'] = $this->pagination->create_links();
 if (isset($_SERVER['HTTP_X_PJAX']) && $_SERVER['HTTP_X_PJAX'] == TRUE)
    
        $this->load->view('show_members', $data);
     else
    
        $this->output->set_template('frontend');
        $this->output->set_title('Members | ' . sitename());
        $this->load->view('show_members', $data);
     

【问题讨论】:

添加您的 javascript 代码和“show_members”视图的内容 检查您的开发者控制台。 从您显示的代码中,我们还看不到 pjax 的 javascript 调用程序部分。我们此时只能看到问题最有可能存在于javascript调用者部分的接收器部分。也许缺少像“return false;”这样的东西。在 标记或脚本中的类似内容中。 $config["per_page"] = PER_PAGE;这个呢? 我可以知道 PER_PAGE 的值是多少 【参考方案1】:

我解决了这个问题:

$.pjax.defaults.timeout = 3000;

【讨论】:

【参考方案2】:

你怎么能得到$config["total_rows"]??

我觉得应该$config["total_rows"] = $this->member->browse_search_total($FilterData)->num_rows();

【讨论】:

你的意思是函数 browse_search_total 返回一个值,它是总行数?【参考方案3】:

试试下面的配置值

$config['page_query_string'] = TRUE

【讨论】:

以上是关于如何使用 pjax 实现 Codeigniter 默认分页的主要内容,如果未能解决你的问题,请参考以下文章

Pjax无刷新跳转页面实现,支持超链接与表单提交

pjax转发

pjax简单实例

emlog通过pjax实现无刷新加载网页--完美解决cnzz统计和javascript失效问题

pjax + tp5,实现局部无刷新返回数据

Ace admin 如何实现类似于freamset加载页面