展会信息港展会大全

解析CI的AJAX分页 另类实现方法
来源:互联网   发布日期:2016-03-02 15:30:01   浏览:1754次  

导读:看了一下CI的分页类没有写到关于AJAX的内容,也在论坛上看到其他几位大神写的分页类扩展,感觉其实是没有必要。在现有的基础上做了一下小小的改动还是能实现的。下面进入正题:CI的原生分页类中有一个...

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

在现有的基础上做了一下小小的改动还是能实现的。下面进入正题:CI的原生分页类中有一个参数 $config[anchor_class]

这个参数是用来设置分页链接的样式的,所以我们可以设置成这样:$config[anchor_class] = "class=ajax_fpage";然后在view部分这样采用禁止a便签默认动作的方法来取得AJAX的调取效果。代码如下:

复制代码 代码如下:

<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代码如下:

复制代码 代码如下:

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

$config

$config

$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);

}

赞助本站

人工智能实验室

相关热词: 开发 编程 android

AiLab云推荐
展开

热门栏目HotCates

Copyright © 2010-2024 AiLab Team. 人工智能实验室 版权所有    关于我们 | 联系我们 | 广告服务 | 公司动态 | 免责声明 | 隐私条款 | 工作机会 | 展会港