用户
 找回密码
 入住 CI 中国社区
搜索
查看: 12552|回复: 10
收起左侧

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

[复制链接]
发表于 2012-9-2 10:37:05 | 显示全部楼层 |阅读模式
本帖最后由 Rabbit_52 于 2012-9-2 10:51 编辑

Screenshot from 2012-09-02 10:49:21.png

原生的分页类不能适用于ajax,因为在它生成分页链接的时候会判断当前的 uri string 要使其支持 ajax 只需要让它生成分页链接的时候使用指定的当前页码,很简单在 applications/libraries 下创建 MY_Pagination.php
PHP复制代码
class MY_Pagination extends CI_Pagination
复制代码

只需要重写create_links()方法将里面有通过uri赋值cur_page的语句作一个判断即可
PHP复制代码
 
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 参数
PHP复制代码
$this->pagination->cur_page = (int)$page;
$json_array['pagination'] = $this->pagination->create_links(TRUE);
复制代码

还有,因为第一页的页码可能会为空,接受ajax的方法还需要处理一下。
最后效果可以见 jia2.rabbit52.com 通知(右上角)->站内信->写站内信->选择收信人使用demo帐号登录 demo demo
完整的代码能从 github 获取

评分

参与人数 1威望 +2 收起 理由
nooneisthere123 + 2 很给力!

查看全部评分

发表于 2012-9-2 17:09:28 | 显示全部楼层
顶,收藏了
发表于 2012-9-4 13:55:57 | 显示全部楼层
下载源码看看,学习了~
CIer
CIer  发表于 2012-9-6 21:57:37
源文件在哪啊 分页的  完整的代码哪个是啊
 楼主| 发表于 2012-9-6 23:13:30 | 显示全部楼层
。笨才~ 发表于 2012-9-6 21:57
源文件在哪啊 分页的  完整的代码哪个是啊

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 | 显示全部楼层
没研究明白楼主大神,帮详细解释一下好吗
 楼主| 发表于 2012-10-30 10:48:22 | 显示全部楼层
正如你所说,我 发表于 2012-10-28 17:27
没研究明白楼主大神,帮详细解释一下好吗

看一看代码就是了呀,通过ajax请求指定当前页,就能返回下一页的数据
发表于 2012-11-5 12:57:19 | 显示全部楼层
看了 ci和doctrine的配置  但是那是老版本的  ci2.x不知道怎么配置  求大哥帮忙  看了几天了  不会  原帖http://codeigniter.org.cn/forums/thread-14727-1-1.html

本版积分规则