看了一下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=)
{
$this>load>library(pagination);
$config[base_url] = site_url(qyadmin/ContentList/$id/$p);
$config[total_rows] = $this>admin>content_list($id$p);
$config[per_page] = ;
$config[uri_segment] = ;
$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_nextgif">;
$config[next_tag_open] = <li class="fr">;
$config[next_tag_close] = </li>;
$config[prev_link] = <img src="$skin_url/images/page_prevgif">;
$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$config[per_page]$this>uri>segment());
$fpage = $this>pagination>create_links();
$this>smarty>assign(fpage$fpage);
$this>smarty>assign(content$content);
$this>smarty>view(showtpl);
}