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

[库 Library] CI的AJAX分页实现

[复制链接]
发表于 2013-2-16 16:54:14 | 显示全部楼层 |阅读模式
本帖最后由 mujiantao 于 2013-2-16 16:56 编辑

看了一下CI的分页类没有写到关于AJAX的内容,也在论坛上看到其他几位大神写的分页类扩展,感觉其实是没有必要。

在现有的基础上做了一下小小的改动还是能实现的。

下面进入正题:

CI的原生分页类中有一个参数 $config[anchor_class]

这个参数是用来设置分页链接的样式的,所以我们可以设置成这样:

PHP复制代码
$config[anchor_class] = class="ajax_fpage";
复制代码

然后在view部分这样采用禁止a便签默认动作的方法来取得AJAX的调取效果。


代码如下:

JS复制代码
<script>
        $(.ajax_fpage).click(function(e){
        var url = $(this).attr(href);
                $.get(url,{},function(res){
                        $(#show_what_table).html(res);
                });
        event.preventDefault();
        });
</script>
复制代码

当ajax_fpage点击的时候,禁止a标签的默认动作,并得到href信息,然后用get方法取得href的内容,并更新dom.


这样一个完整的ajax分页就实现了。从而不需要对原始的类进行扩展了。

详细的PHP代码如下:



PHP复制代码
function ContentList($id,$p=0)
{
        $this->load->library(pagination);
        $config[base_url] = site_url(qyadmin/ContentList/.$id./.$p);
        $config[total_rows] = $this->admin->content_list($id,$p,1);
        $config[per_page] = 5;
    $config[uri_segment] = 5;  
    $config[first_link] = FALSE;
    $config[last_link] = FALSE;
    $config[full_tag_open] = <p>;
    $config[full_tag_close] = </p>;
    $config[display_pages] = FALSE;
    $this->load->helper(url);
    $skin_url = base_url().APPPATH . "views/templates";
    $config[next_link] = <img src=".$skin_url./images/page_next.gif">;
    $config[next_tag_open] = <li class="fr">;
    $config[next_tag_close] = </li>;  
    $config[prev_link] = <img src=".$skin_url./images/page_prev.gif">;
        $config[prev_tag_open] = <li class="fr">;
        $config[prev_tag_close] = </li>;
        $config[anchor_class] = class="ajax_fpage";
    $this->pagination->initialize($config);
    $content = $this->admin->content_list($id,$p,0,$config[per_page],$this->uri->segment(5));
    $fpage = $this->pagination->create_links();
    $this->smarty->assign(fpage,$fpage);
        $this->smarty->assign(content,$content);
        $this->smarty->view(show.tpl);
}
复制代码


本文出自303blog,转载请申明!原文地址:http://www.303blog.org/229



评分

参与人数 2威望 +11 收起 理由
^淡如清风 + 6 简洁明了,赞一个
Aloghli + 5 很给力!

查看全部评分

发表于 2014-9-20 11:36:35 | 显示全部楼层
我是直接继承他的分页类即可 然后代码改下就行
发表于 2014-12-5 09:30:08 | 显示全部楼层
有完整的例子吗?
发表于 2013-2-16 21:41:31 | 显示全部楼层
不错 ,这个方法还比较简洁
发表于 2013-3-15 10:39:44 | 显示全部楼层
顶!!!挺简洁的,最近刚好用到这个
发表于 2013-4-19 16:24:33 | 显示全部楼层
简洁,好
发表于 2013-4-19 17:51:36 | 显示全部楼层
这个方法很早以前都知道了,其实配置都不用改。JS直接拦截就可以
发表于 2013-7-2 17:35:30 | 显示全部楼层
MARK一下,就这两天可能会用到。
发表于 2013-7-19 10:33:27 | 显示全部楼层
思想不错,感觉还是把CI和ajax分离开最好,CI是让代码编写简单清晰,而ajax的交互个人感觉还是js来控制最好!吧后台前台分开!
发表于 2013-7-19 15:30:03 | 显示全部楼层
学习了
发表于 2013-8-13 01:43:49 | 显示全部楼层
Mark!
发表于 2013-8-26 16:20:38 | 显示全部楼层
不能解决cur_page的问题!!

本版积分规则