这里有新鲜出炉的 CodeIgniter 用户指南,程序狗速度看过来!
CodeIgniter 是一个简单快速的 PHP MVC 框架。EllisLab 的工作人员发布了 CodeIgniter。许多企业尝试体验过所有 PHP MVC 框架之后,CodeIgniter 都成为赢家,主要是由于它为组织提供了足够的自由支持,允许开发人员更迅速地工作。
这篇文章主要介绍了 CI 分页类首页、尾页不显示的解决方法, 结合实例形式较为详细的分析说明了 CI 框架分页代码的运行原理与显示首页、尾页的具体方法, 需要的朋友可以参考下
本文实例讲述了 CI 分页类首页、尾页不显示的解决方法。分享给大家供大家参考,具体如下:
看了下手册说,每次都要重新去写一次呢些 $config,可以新建一个文件放到 config 文件夹下面,考虑了下,config 这个文件夹系统会自动加载,也就是说不管你访问什么页面这文件夹里面的所有信息都会被加载,所以,要想在这个文件里面去写就需要写方法,这样即使加载如果不去加载也是没有关系的。本人没有沿用手册上的说法做。
我的思路:既然我们是在 CI 这框架下写的东西,而且每个控制器都会引入父类 CI_Controller 这个类,所有我就在这个类中创建了一个方法,名 page 代码如下:
- public
- function page($url, $total, $pre, $status = TRUE) {
- $this - >load - >library('pagination');
- $config['base_url'] = $url;
- $config['total_rows'] = $total;
- $config['per_page'] = $pre;
- $config['page_query_string'] = $status;
- $config['first_link'] = 'First'; //首页
- $config['first_tag_open'] = '';
- $config['first_tag_close'] = '';
- $config['last_link'] = 'Last'; //尾页
- $config['last_tag_open'] = '';
- $config['last_tag_close'] = '';
- $this - >pagination - >initialize($config);
- $page_list = $this - >pagination - >create_links();
- return $page_list;
- }
参数说明,$url: 当前需要使用分页的地址。 $total: 总数。 $pre: 每页显示的数量 $status 默认是 true 传 page 以 & page=1 的方式,如果修改成 false 则已 page/1 的方式显示。
然后直接在你的控制器中如下使用即可
- $page_list = $this->page("http://XXX.XXXX.com/XXX/XXX",总数,页显示数量);
- //分页
这样既可。
tips:系统自带的传值形参不叫 page 而是 pre_page 好像,忘了,由于参数过长,你就在 根目录 --》system-->libraries--》Pagination.php 里面 找到 var $query_string_segment ="形参";这里修改 page 即可。
测试是发现如果按照上面的写法,首页和尾页不显示的原因:你的数据量太少了,分页数据至少在 4 页以上才会出现 首页这个字样,但是我们可以修改,这里我设定为 3 页才显示,则也去这个 pagination.php 文件中找到
var $num_links = 2;这里默认是 2 也就是第四页才显示,修改成 1 ,注意,这里最小只能修改成 1,如果你想在任何情况下都显示则需要修改代码,找到这段代码:
- if ($this - >first_link !== FALSE AND $this - >cur_page > ($this - >num_links + 1))
修改将 and 后面的都去掉即可,因为 and 后面就是限定条件,说明下:$this->cur_page 表示当前页, $this->num_links 就是要显示在什么时候才显示的,还有其他代码这里就不说明了,自己查找下问啥 $num_links 不能设置为 0
希望本文所述对大家基于 CodeIgniter 框架的 PHP 程序设计有所帮助。
来源: http://www.phperz.com/article/17/0803/343670.html