看了一下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
[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);
}
|