解析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获取mysql数据库中的所有表名的代码
Apr 23 PHP
浅析php变量作用域的一些问题
Aug 08 PHP
php基于base64解码图片与加密图片还原实例
Nov 03 PHP
PHP判断IP并转跳到相应城市分站的方法
Mar 25 PHP
php中关于socket的系列函数总结
May 18 PHP
php比较相似字符串的方法
Jun 05 PHP
用PHP代码给图片加水印
Jul 01 PHP
PHP和MySql中32位和64位的整形范围是多少
Feb 18 PHP
phplist及phpmailer(组合使用)通过gmail发送邮件的配置方法
Mar 30 PHP
php数组分页实现方法
Apr 30 PHP
PHP实现基于面向对象的mysqli扩展库增删改查操作工具类
Jul 18 PHP
详解Laravel框架的依赖注入功能
May 27 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
星际争霸 Starcraft 游戏介绍
2020/03/14 星际争霸
phpword插件导出word文件时中文乱码问题处理方案
2014/08/19 PHP
PHP截取指定图片大小的方法
2014/12/10 PHP
PHP的mysqli_rollback()函数讲解
2019/01/23 PHP
Avengerls vs Newbee BO3 第一场2.18
2021/03/10 DOTA
JQuery与Ajax常用代码实现对比
2009/10/03 Javascript
Javascript中判断变量是数组还是对象(array还是object)
2013/08/14 Javascript
AngularJS入门教程之学习环境搭建
2014/12/06 Javascript
node.js中的fs.fsync方法使用说明
2014/12/15 Javascript
JavaScript中调用函数的4种方式代码实例
2015/07/08 Javascript
jquery实现简单实用的弹出层效果代码
2015/10/15 Javascript
IE8 内存泄露(内存一直增长 )的原因及解决办法
2016/04/06 Javascript
JavaScript关联数组用法分析【概念、定义、遍历】
2017/03/15 Javascript
JavaScript纯色二维码变成彩色二维码
2020/07/23 Javascript
jQuery实现base64前台加密解密功能详解
2017/08/29 jQuery
vue2.0+vuex+localStorage代办事项应用实现详解
2018/05/31 Javascript
Angularjs中的$apply及优化使用详解
2018/07/02 Javascript
vue悬浮可拖拽悬浮按钮的实例代码
2019/08/20 Javascript
Nodejs封装类似express框架的路由实例详解
2020/01/05 NodeJs
vue-resource 拦截器interceptors使用详解
2021/01/18 Vue.js
[48:56]2018DOTA2亚洲邀请赛 3.31 小组赛 A组 VG vs KG
2018/03/31 DOTA
使用Python脚本对Linux服务器进行监控的教程
2015/04/02 Python
Python中的复制操作及copy模块中的浅拷贝与深拷贝方法
2016/07/02 Python
Python信息抽取之乱码解决办法
2017/06/29 Python
Python中偏函数用法示例
2018/06/07 Python
完美解决在oj中Python的循环输入问题
2018/06/25 Python
属性与 @property 方法让你的python更高效
2020/09/21 Python
Python基于argparse与ConfigParser库进行入参解析与ini parser
2021/02/02 Python
澳大利亚冒险体验:Adrenaline(跳伞、V8赛车、热气球等)
2017/09/18 全球购物
英国PC组件和在线电脑商店:SCAN
2019/04/18 全球购物
Linux上比较文件的命令都有哪些
2013/09/28 面试题
护士实习自我鉴定
2013/10/22 职场文书
硕士研究生自我鉴定范文
2013/12/27 职场文书
股指期货心得体会
2014/09/10 职场文书
领导干部个人整改措施落实情况汇报
2014/10/29 职场文书
PostgreSQL数据库去除重复数据和运算符的基本查询操作
2022/04/12 PostgreSQL