解析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学习之PHP运算符
Oct 09 PHP
用PHP和ACCESS写聊天室(三)
Oct 09 PHP
php5 图片验证码实现代码
Dec 11 PHP
php中使用session_set_save_handler()函数把session保存到MySQL数据库实例
Nov 06 PHP
php使用pdo连接mssql server数据库实例
Dec 25 PHP
php include类文件超时问题处理
Feb 06 PHP
PHP可变变量学习小结
Nov 29 PHP
php实现登录tplink WR882N获取IP和重启的方法
Jul 20 PHP
php自定义函数实现二维数组排序功能
Jul 20 PHP
PHP三种方式实现链式操作详解
Jan 21 PHP
PHP实践教程之过滤、验证、转义与密码详解
Jul 24 PHP
PHP ADODB实现分页功能简单示例
May 25 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基于openssl的rsa加密解密示例
2016/07/11 PHP
Paypal实现循环扣款(订阅)功能
2017/03/23 PHP
PHP的imageTtfText()函数深入详解
2021/03/03 PHP
不间断滚动JS打包类,基本可以实现所有的滚动效果,太强了
2007/12/08 Javascript
File文件控件,选中文件(图片,flash,视频)即立即预览显示
2009/04/09 Javascript
可以用来调试JavaScript错误的解决方案
2010/08/07 Javascript
jQuery EasyUI API 中文文档 - ValidateBox验证框
2011/10/06 Javascript
JavaScript之自定义类型
2012/05/04 Javascript
基于jQuery实现模拟页面加载进度条
2013/04/01 Javascript
我用的一些Node.js开发工具、开发包、框架等总结
2014/09/25 Javascript
JavaScript之Date_动力节点Java学院整理
2017/06/28 Javascript
JS使用贪心算法解决找零问题示例
2017/11/27 Javascript
微信小程序6位或多位验证码密码输入框功能的实现代码
2018/05/29 Javascript
Vue中$refs的用法详解
2018/06/24 Javascript
JS实现select选中option触发事件操作示例
2018/07/13 Javascript
Vue响应式原理Observer、Dep、Watcher理解
2019/06/06 Javascript
vue 项目@change多个参数传值多个事件的操作
2021/01/29 Vue.js
[38:32]DOTA2上海特级锦标赛A组资格赛#2 Secret VS EHOME第二局
2016/02/26 DOTA
python实现的一个p2p文件传输实例
2014/06/04 Python
python实现去除下载电影和电视剧文件名中的多余字符的方法
2014/09/23 Python
Python RuntimeError: thread.__init__() not called解决方法
2015/04/28 Python
Python实现的FTP通信客户端与服务器端功能示例
2018/03/28 Python
Python图片转换成矩阵,矩阵数据转换成图片的实例
2018/07/02 Python
NumPy 数组使用大全
2019/04/25 Python
Django 后台获取文件列表 InMemoryUploadedFile的例子
2019/08/07 Python
Python 共享变量加锁、释放详解
2019/08/28 Python
Python 格式化打印json数据方法(展开状态)
2020/02/27 Python
如何在python中实现线性回归
2020/08/10 Python
如何基于pandas读取csv后合并两个股票
2020/09/25 Python
为什么在使用动态 SQL 语句时必须为低层数据库对象授予权限
2012/12/13 面试题
工程造价专业大学生职业生涯规划书
2014/01/18 职场文书
《风娃娃》教学反思
2014/04/19 职场文书
村安全生产责任书
2014/08/25 职场文书
教师自荐信范文
2015/03/06 职场文书
企业培训简报范文
2015/07/20 职场文书
利用python调用摄像头的实例分析
2021/06/07 Python