解析CI的AJAX分页 另类实现方法


Posted in PHP onJune 27, 2013

看了一下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);
}
PHP 相关文章推荐
php中常用编辑器推荐
Jan 02 PHP
php preg_match_all结合str_replace替换内容中所有img
Oct 11 PHP
php array_map array_multisort 高效处理多维数组排序
Jun 11 PHP
CentOS 6.2使用yum安装LAMP以及phpMyadmin详解
Jun 17 PHP
使用phpQuery采集网页的方法
Nov 13 PHP
PHP中的output_buffering详细介绍
Sep 27 PHP
php将文本文件转换csv输出的方法
Dec 31 PHP
PHP CURL 内存泄露问题解决方法
Feb 12 PHP
全面解读PHP的人气开发框架Laravel
Oct 15 PHP
Linux平台PHP5.4设置FPM线程数量的方法
Nov 09 PHP
Thinkphp整合微信支付功能
Dec 14 PHP
php mysql_real_escape_string addslashes及mysql绑定参数防SQL注入攻击
Dec 23 PHP
解析Win7 XAMPP apache无法启动的问题
Jun 26 #PHP
解析阿里云ubuntu12.04环境下配置Apache+PHP+PHPmyadmin+MYsql
Jun 26 #PHP
解析获取优酷视频真实下载地址的PHP源代码
Jun 26 #PHP
Youku 视频绝对地址获取的方法详解
Jun 26 #PHP
解析php 版获取重定向后的地址(代码)
Jun 26 #PHP
php连接函数implode与分割explode的深入解析
Jun 26 #PHP
解析PHP正则提取或替换img标记属性
Jun 26 #PHP
You might like
兼容性最强的PHP生成缩略图的函数代码(修改版)
2011/01/18 PHP
php json与xml序列化/反序列化
2013/10/28 PHP
utf8的编码算法 转载
2006/12/27 Javascript
使用新的消息弹出框blackbirdjs
2008/10/16 Javascript
IE8 浏览器Cookie的处理
2009/01/31 Javascript
JQuery为textarea添加maxlength属性的代码
2010/04/07 Javascript
不提示直接关闭网页窗口的JS示例代码
2013/12/17 Javascript
js代码实现的加入收藏效果并兼容主流浏览器
2014/06/23 Javascript
JS动态加载当前时间的方法
2015/02/09 Javascript
关于List.ToArray()方法的效率测试
2016/09/30 Javascript
Nodejs中解决cluster模块的多进程如何共享数据问题
2016/11/10 NodeJs
微信小程序 用户数据解密详细介绍
2017/01/09 Javascript
js判断手机号是否正确并返回的实现代码
2017/01/17 Javascript
Vue自定义指令拖拽功能示例
2017/02/17 Javascript
用angular实现多选按钮的全选与反选实例代码
2017/05/23 Javascript
jquery写出PC端轮播图实例
2018/01/26 jQuery
微信小程序实现手指触摸画板
2018/07/09 Javascript
JS实现根据指定值删除数组中的元素操作示例
2018/08/02 Javascript
微信运维交互机器人的示例代码
2018/11/12 Javascript
vue写h5页面的方法总结
2019/02/12 Javascript
使用Taro实现小程序商城的购物车功能模块的实例代码
2020/06/05 Javascript
[01:36]极致酷炫!TI9典藏宝瓶+撼地者至宝展示
2019/06/11 DOTA
python中lambda函数 list comprehension 和 zip函数使用指南
2014/09/28 Python
对于Python中RawString的理解介绍
2016/07/07 Python
python django 访问静态文件出现404或500错误
2017/01/20 Python
Python 中迭代器与生成器实例详解
2017/03/29 Python
解决pycharm py文件运行后停止按钮变成了灰色的问题
2018/11/29 Python
python_opencv用线段画封闭矩形的实例
2018/12/05 Python
Python学习笔记之lambda表达式用法详解
2019/08/08 Python
python开头的coding设置方法
2019/08/08 Python
浅析Python3 pip换源问题
2020/01/06 Python
Ruby如何定义一个类
2012/10/08 面试题
申论倡议书范文
2014/05/13 职场文书
党章培训心得体会
2014/09/04 职场文书
2015年环卫处个人工作总结
2015/07/27 职场文书
实例详解Python的进程,线程和协程
2022/03/13 Python