Rabbit_52 发表于 2012-9-2 10:37:05

CI扩展分页类,使其适用于ajax分页

本帖最后由 Rabbit_52 于 2012-9-2 10:51 编辑



原生的分页类不能适用于ajax,因为在它生成分页链接的时候会判断当前的 uri string 要使其支持 ajax 只需要让它生成分页链接的时候使用指定的当前页码,很简单在 applications/libraries 下创建 MY_Pagination.php
class MY_Pagination extends CI_Pagination
只需要重写create_links()方法将里面有通过uri赋值cur_page的语句作一个判断即可

function create_links($cur_page = FALSE) {
    ....
    ....
    if(!$cur_page) {
            $this->cur_page = $CI->uri->segment($this->uri_segment);
      
            // Prep the current page - no funny business!
            $this->cur_page = (int) $this->cur_page;
    }
    ....
    ....
}

初始化分页类的时候就可以设置 ‘base_url’ 为 # 或者其他符号,这样js将页码取出来也比较简单,同时要将‘use_page_numbers’设为 TRUE
当然,你还需要在 create_links() 之前给他的 cur_page 赋值,并传递 TRUE 参数
$this->pagination->cur_page = (int)$page;
$json_array['pagination'] = $this->pagination->create_links(TRUE);
还有,因为第一页的页码可能会为空,接受ajax的方法还需要处理一下。
最后效果可以见 jia2.rabbit52.com 通知(右上角)->站内信->写站内信->选择收信人使用demo帐号登录 demo demo
完整的代码能从 github 获取

bearcat001 发表于 2012-9-2 17:09:28

顶,收藏了

Nebula 发表于 2012-9-4 13:55:57

下载源码看看,学习了~

Anonymous 发表于 2012-9-6 21:57:37

源文件在哪啊 分页的完整的代码哪个是啊

Rabbit_52 发表于 2012-9-6 23:13:30

。笨才~ 发表于 2012-9-6 21:57 static/image/common/back.gif
源文件在哪啊 分页的完整的代码哪个是啊

search controller 里面的 user_relation 方法,能通过ajax请求找到撒~

。笨才~ 发表于 2012-9-7 13:43:43

本帖最后由 。笨才~ 于 2014-4-13 21:50 编辑

{:soso_e103:}

。笨才~ 发表于 2012-9-7 16:06:03

你在不在

正如你所说,我 发表于 2012-10-28 17:27:28

没研究明白楼主大神,帮详细解释一下好吗

Rabbit_52 发表于 2012-10-30 10:48:22

正如你所说,我 发表于 2012-10-28 17:27 static/image/common/back.gif
没研究明白楼主大神,帮详细解释一下好吗

看一看代码就是了呀,通过ajax请求指定当前页,就能返回下一页的数据

Mckee 发表于 2012-11-5 12:57:19

看了 ci和doctrine的配置但是那是老版本的ci2.x不知道怎么配置求大哥帮忙看了几天了不会原帖http://codeigniter.org.cn/forums/thread-14727-1-1.html
页: [1] 2
查看完整版本: CI扩展分页类,使其适用于ajax分页