贴自己自己正在使用的codeigniter中的分页类。供大家参考下。也谢谢这个类的书写者。因为您的分享,所以让大家得到了便捷。
先贴出来这个分页类:
<?php if (!defined('BASEPATH')) exit('No direct script access allowed'); class Mypage_class { /** * @author :leanhunter<heww@live.com> * @create:2011-9-23 * 本分页类专为三段式CI分页缩写,即site_url('control/function/2'); */ /** * config */ public $part=2;//控制数字列表当前页前后链接数量 public $totalpage=0;//总页数 public $url='';//url地址,不含分页所在的段,形如:'control/function' public $total=0;//总条数 public $perpage=5;//每页条数 public $nowindex=1;//当前页 public $seg=3;//页码参数取 index.php之后的段数,默认为3,即index.php/control/function/18 这种形式 public $next_page='下一页';//下一页 public $pre_page='上一页';//上一页 public $first_page='首页';//首页 public $last_page='末页';//尾页 /** * constructor构造函数 * * @param $params=array() */ public function __construct($params = array()) { if (count($params) > 0) { $this->initialize($params); } log_message('debug', "MyPage Class Initialized"); } function initialize($params) { if (count($params) > 0) { $this->total=isset($params['total']) ? intval($params['total']) : 0;//总条数 $this->perpage=isset($params['perpage']) ? intval($params['perpage']) : 5;//每页条数 $this->nowindex=isset($params['nowindex']) ? intval($params['nowindex']) : 1;//当前页 $this->url=isset($params['url']) ? $params['url'] : '';//url地址,不含分页所在的段,形如:'control/function' $this->part=isset($params['part']) ? $params['part'] : 2;//控制数字列表当前页前后链接数量 $this->seg=isset($params['seg']) ? $params['seg'] : 3;//页码参数取 index.php之后的段数,默认为3,即index.php/control/function/18 这种形式 $this->next_page=isset($params['next_page']) ? $params['next_page'] : '下一页'; $this->pre_page=isset($params['pre_page']) ? $params['pre_page'] : '上一页'; $this->first_page=isset($params['first_page']) ? $params['first_page'] : '首页'; $this->last_page=isset($params['last_page']) ? $params['last_page'] : '末页'; } $this->totalpage=ceil( $this->total / $this->perpage);//总页数 $this->_myset_url($this->url);//设置链接地址 } /** * 获取显示"下一页"的代码 * * @param string $style * @return string */ function next_page($style='pg_next') { if($this->nowindex < $this->totalpage){ return $this->_get_link($this->_get_url($this->nowindex + 1), $this->next_page, $style); } return '<span class="'.$style.'">'.$this->next_page.'</span>'; } /** * 获取显示“上一页”的代码 * * @param string $style * @return string */ function pre_page($style='pg_pre') { if($this->nowindex > 1){ return $this->_get_link($this->_get_url($this->nowindex-1),$this->pre_page,$style); } return '<span class="'.$style.'">'.$this->pre_page.'</span>'; } /** * 获取显示“首页”的代码 * * @param string $style * @return string */ function first_page($style='pg_first') { if($this->nowindex == 1){ return '<span class="'.$style.'">'.$this->first_page.'</span>'; } return $this->_get_link($this->_get_url(1),$this->first_page,$style); } /** * 获取显示“尾页”的代码 * * @param string $style * @return string */ function last_page($style='pg_last') { if($this->nowindex == $this->totalpage){ return '<span class="'.$style.'">'.$this->last_page.'</span>'; } return $this->_get_link($this->_get_url($this->totalpage),$this->last_page,$style); } /** * 获取显示“当前页”的代码 * * @param string $style * @param string $nowindex_style * @return string */ function nowbar($style='pg_link',$nowindex_style='pg_curr') { $plus=$this->part; $begin=1; $end=$this->totalpage; if ($this->nowindex > $plus) { $begin=$this->nowindex-$plus; $end = $this->nowindex + $plus; if ($end > $this->totalpage) { $begin= ($begin - $end + $this->totalpage>0) ? ($begin - $end + $this->totalpage) : 1; $end = $this->totalpage; } } else { $begin=1; $end = $begin + 2*$plus; $end = $end > $this->totalpage ? $this->totalpage : $end; } $out=''; for($i = $begin;$i <= $end; $i++) { if($i != $this->nowindex){ $out.= $this->_get_link($this->_get_url($i),$i,$style); }else{ $out.= '<span class="'.$nowindex_style.'">'.$i.'</span>'; } } return $out; } /** * 获取显示跳转按钮的代码 * * @return string */ function select() { $out='<select name="pagelect" class="pg_select">'; for($i=1;$i <= $this->totalpage;$i++) { if($i==$this->nowindex){ $out.='<option value="'.$i.'" selected>'.$i.'</option>'; }else{ $out.='<option value="'.$i.'">'.$i.'</option>'; } } $out.='</select>'; return $out; } /** * 控制分页显示风格 * * @param int $mode * @return string */ function show($mode=1) { switch ($mode) { case 1://上一页 1 2 3 4 5 下一页 第x页 return $this->pre_page().$this->nowbar().$this->next_page(); break; case 2://首页 上一页 1 2 3 4 5 下一页 末页 第x页 return $this->first_page().$this->pre_page().$this->nowbar().$this->next_page().$this->last_page().'第'.$this->select().'页'; break; case 3://上一页 1 2 3 4 5 下一页 return $this->pre_page().$this->nowbar().$this->next_page(); break; default://上一页 1 2 3 4 5 下一页 第x页 return $this->pre_page().$this->nowbar().$this->next_page().'第'.$this->select().'页'; break; } } /*----------------private function (私有方法)-----------------------------------------------------------*/ /** * 设置url头地址 * @param: String $url * @return boolean */ public function _myset_url($url) { $CI=&get_instance(); $CI->load->helper('url'); if (empty($url)) {//如果$url为空,要用uri_string()函数取uri段 $cururl=''; $cururl=uri_string(); $segementarray=explode("/",$cururl); $c=0; for ($i=0; $i < sizeof($segementarray); $i++) { if ($segementarray[$i] && $c < $this->seg-1) {//取uri_string()的seg-1段 $url=$url.'/'.$segementarray[$i]; $c++; } } } $this->url=site_url($url); } /** * 为指定的页面返回地址值 * * @param int $pagenum * @return string $url */ function _get_url($pagenum=1) { return $this->url.'/'.$pagenum; } /** * 获取链接地址 */ function _get_link($url,$text,$style=''){ $style=$style?'class="'.$style.'"':''; return '<a '.$style.' href="'.$url.'">'.$text.'</a>'; } }//end class /* End of file Mypage.php */ /* Location: ./application/libraries/Mypage.php */
大家可以在相应的控制器中写下具体配置:
$page_config['perpage']=5; //每页条数 $page_config['part']=2;//当前页前后链接数量 $page_config['url']='vote/getview';//url $page_config['seg']=3;//参数取 index.php之后的段数,默认为3,即index.php/control/function/18 这种形式 $page_config['nowindex']=$this->uri->segment($page_config['seg']) ? $this->uri->segment($page_config['seg']):1;//当前页 $this->load->library('mypage_class'); $countnum=100;//得到记录总数--应该是调用model中的某方法得来的。这里省略。 $page_config['total']=$countnum; $this->mypage_class->initialize($page_config); $this->load->view('template/replist');
视图里code:
<div class="page"> <span style="white-space: pre;" mce_style="white-space: pre;"> </span><?php echo $this->mypage_class->show(1); ?> </div>
您还没有登录,请您登录后再发表评论
CodeIgniter 分页类是框架中用于实现动态分页功能的一个工具类,它极大地简化了在Web应用中处理大量数据分页显示的过程。在CodeIgniter中,分页类允许开发者自定义分页链接的样式、每页显示的记录数以及URL路径等...
CodeIgniter分页是PHP开发框架CodeIgniter中的一个重要特性,用于帮助开发者处理大量数据时进行高效的页面导航。在Web应用程序中,当数据集过大,一次性加载所有数据可能导致页面加载速度变慢,甚至超出服务器承载...
在本文中,我们将深入探讨CodeIgniter的分页类`pagination`的使用方法,通过一个具体的实例来展示如何在实际项目中实现分页功能。 1. **分页类初始化** 在Controller中,首先需要加载`pagination`库。这通常在控制...
在这个"一个简单的Codeigniter用户登录验证例子程序"中,我们将探讨如何在Codeigniter中实现用户认证和登录功能,这对于任何Web应用来说都是核心部分。这个程序包含了一些关键组件,如密码加密、session管理以及用户...
- 创建一个分页类,可以包含计算总页数、获取分页链接等方法。 - 计算总页数:根据总记录数除以每页显示的记录数,得到总页数。 - 获取分页链接:创建HTML链接,通常会展示“上一页”、“下一页”、“第一页”、...
CodeIgniter是一个流行的PHP框架,以其轻量级、高效能和强大的功能著称。它遵循MVC(模型-视图-控制器)架构模式,帮助开发者更有效地构建动态网站。在这个"codeigniter的简单示例"中,我们将深入探讨CodeIgniter的...
例如,一个图片上传功能可能会结合文件上传和数据库操作,先将文件保存在服务器,然后将文件信息(如路径、名称等)存入数据库。验证码则可能用在用户注册或登录的表单中,防止恶意自动注册。而当数据库中的记录数量...
本案例是使用CodeIgniter框架构建的一个留言板系统,它展示了如何在实际项目中应用这个框架的基本原理和技术。 首先,CodeIgniter的核心特性包括MVC(Model-View-Controller)架构,它有助于分离业务逻辑、数据处理...
总之,"PHP的一个用CodeIgniter做的留言板的例子"是一个很好的起点,它展示了如何在实践中运用PHP和CodeIgniter框架。通过研究并模仿这个示例,初学者可以深入理解PHP开发,并学会如何构建一个简单的互动式Web应用。
"CodeIgniter 2.1.2"是该框架的一个特定版本,它在2012年发布,虽然现在已经有了更新的版本,但这个老版本仍然被许多开发者用于维护旧项目或者教学用途。 CodeIgniter基于Model-View-Controller(MVC)设计模式,这...
CodeIgniter是一个非常流行的PHP框架,它以轻量级、高效和易于学习的特性深受开发者喜爱。无限分类在很多Web应用中是常见的需求,比如博客的分类、电商的商品分类等。无限分类允许我们构建层级分明、可以无限延伸的...
在CI(CodeIgniter)框架中,分页类是一个非常实用的工具,它帮助开发者在处理大量数据时实现高效的页面导航。CI 分页类提供了便捷的方式来分割查询结果,并且可以轻松地自定义样式,使得用户在浏览大量数据时能有...
在类库中,我们需要定义一个名为`Cate`的类,并继承`CI_Library`基类,以便于利用CI框架的内置功能。 2. **数据库设计**: 为了存储分类,我们需要一个数据库表,如`categories`,包含字段如`id`(主键)、`name`...
这个"CodeIgniter 1.72 中文帮助文档"是针对该框架的一个详细指南,旨在帮助开发者更好地理解和使用CodeIgniter 1.72版本。 1. **CodeIgniter简介** CodeIgniter以其简洁的架构、出色的性能和丰富的库而闻名。它...
CodeIgniter 2.0 是一个流行的开源PHP框架,它以其高效、轻量级和易于理解的特性在Web开发领域中备受青睐。本资源提供的"CodeIgniter 2.0 中文手册"是针对该框架的详细指南,帮助开发者更好地理解和运用这个框架。 ...
CodeIgniter是一个流行的PHP框架,它提供了一系列工具和类库,帮助开发者更高效地构建Web应用程序。在本实例中,我们将深入探讨如何在CodeIgniter中实现分页和多条件查询,这对于处理大量数据和提供用户友好的界面至...
这个"CodeIgniter 中文手册1.6.3版本"是针对该框架的一个详细指南,帮助中国开发者理解和使用CodeIgniter的各种特性。 在CodeIgniter 1.6.3版本中,以下几个主要知识点值得深入探讨: 1. MVC架构:MVC(Model-View...
相关推荐
CodeIgniter 分页类是框架中用于实现动态分页功能的一个工具类,它极大地简化了在Web应用中处理大量数据分页显示的过程。在CodeIgniter中,分页类允许开发者自定义分页链接的样式、每页显示的记录数以及URL路径等...
CodeIgniter分页是PHP开发框架CodeIgniter中的一个重要特性,用于帮助开发者处理大量数据时进行高效的页面导航。在Web应用程序中,当数据集过大,一次性加载所有数据可能导致页面加载速度变慢,甚至超出服务器承载...
在本文中,我们将深入探讨CodeIgniter的分页类`pagination`的使用方法,通过一个具体的实例来展示如何在实际项目中实现分页功能。 1. **分页类初始化** 在Controller中,首先需要加载`pagination`库。这通常在控制...
在这个"一个简单的Codeigniter用户登录验证例子程序"中,我们将探讨如何在Codeigniter中实现用户认证和登录功能,这对于任何Web应用来说都是核心部分。这个程序包含了一些关键组件,如密码加密、session管理以及用户...
- 创建一个分页类,可以包含计算总页数、获取分页链接等方法。 - 计算总页数:根据总记录数除以每页显示的记录数,得到总页数。 - 获取分页链接:创建HTML链接,通常会展示“上一页”、“下一页”、“第一页”、...
CodeIgniter是一个流行的PHP框架,以其轻量级、高效能和强大的功能著称。它遵循MVC(模型-视图-控制器)架构模式,帮助开发者更有效地构建动态网站。在这个"codeigniter的简单示例"中,我们将深入探讨CodeIgniter的...
例如,一个图片上传功能可能会结合文件上传和数据库操作,先将文件保存在服务器,然后将文件信息(如路径、名称等)存入数据库。验证码则可能用在用户注册或登录的表单中,防止恶意自动注册。而当数据库中的记录数量...
本案例是使用CodeIgniter框架构建的一个留言板系统,它展示了如何在实际项目中应用这个框架的基本原理和技术。 首先,CodeIgniter的核心特性包括MVC(Model-View-Controller)架构,它有助于分离业务逻辑、数据处理...
总之,"PHP的一个用CodeIgniter做的留言板的例子"是一个很好的起点,它展示了如何在实践中运用PHP和CodeIgniter框架。通过研究并模仿这个示例,初学者可以深入理解PHP开发,并学会如何构建一个简单的互动式Web应用。
"CodeIgniter 2.1.2"是该框架的一个特定版本,它在2012年发布,虽然现在已经有了更新的版本,但这个老版本仍然被许多开发者用于维护旧项目或者教学用途。 CodeIgniter基于Model-View-Controller(MVC)设计模式,这...
CodeIgniter是一个非常流行的PHP框架,它以轻量级、高效和易于学习的特性深受开发者喜爱。无限分类在很多Web应用中是常见的需求,比如博客的分类、电商的商品分类等。无限分类允许我们构建层级分明、可以无限延伸的...
在CI(CodeIgniter)框架中,分页类是一个非常实用的工具,它帮助开发者在处理大量数据时实现高效的页面导航。CI 分页类提供了便捷的方式来分割查询结果,并且可以轻松地自定义样式,使得用户在浏览大量数据时能有...
在类库中,我们需要定义一个名为`Cate`的类,并继承`CI_Library`基类,以便于利用CI框架的内置功能。 2. **数据库设计**: 为了存储分类,我们需要一个数据库表,如`categories`,包含字段如`id`(主键)、`name`...
这个"CodeIgniter 1.72 中文帮助文档"是针对该框架的一个详细指南,旨在帮助开发者更好地理解和使用CodeIgniter 1.72版本。 1. **CodeIgniter简介** CodeIgniter以其简洁的架构、出色的性能和丰富的库而闻名。它...
CodeIgniter 2.0 是一个流行的开源PHP框架,它以其高效、轻量级和易于理解的特性在Web开发领域中备受青睐。本资源提供的"CodeIgniter 2.0 中文手册"是针对该框架的详细指南,帮助开发者更好地理解和运用这个框架。 ...
CodeIgniter是一个流行的PHP框架,它提供了一系列工具和类库,帮助开发者更高效地构建Web应用程序。在本实例中,我们将深入探讨如何在CodeIgniter中实现分页和多条件查询,这对于处理大量数据和提供用户友好的界面至...
这个"CodeIgniter 中文手册1.6.3版本"是针对该框架的一个详细指南,帮助中国开发者理解和使用CodeIgniter的各种特性。 在CodeIgniter 1.6.3版本中,以下几个主要知识点值得深入探讨: 1. MVC架构:MVC(Model-View...