|
本帖最后由 昨夜渡轮 于 2011-1-17 22:47 编辑
CI自带的分页类我不喜欢用于是我写了一个分页类,高手不要笑话我哈
如果配置了$config['url_suffix'] = ".html";
地址是这样的:http://localhost/article/index/page_8.html
反之地址是:http://localhost/article/index/page_8
代码如下:
PHP复制代码
<?php
class Pager {
var $pageurl = ''; //输出地址
var $pagetag = 3; //偏移数
var $pageall = 0; //总数据
var $pagenum = 0; //总分页
var $pagecur = 1; //当前页
var $pageper = 0; //每页数
var $pagearr = array();//用来构造分页的数组
/**
* 分页函数
* @return page(数据总数, 每页显示数, 当前页数, 翻页地址)
*/
function page ($pageall,$pageper)
{
$CI =& get_instance ();
$CI->load->helper('url');
$this->pageall = $pageall;
$this->pageper = $pageper;
$this->pagenum = ceil($this->pageall/$this->pageper);
$this->pagenum = ($this->pagenum == 0) ? 1 : $this->pagenum; //数据库记录为0时总页数为1反之不变
//取得当前页
$item = explode('_', $CI->uri->rsegment(3, 0));
$this->pagecur = empty($item[1]) ? 1 : intval($item[1]);
$pageprev = site_url ($CI->uri->rsegment(1, 0).'/'.$CI->uri->rsegment(2, 0).'/page_'.($this->pagecur-1)); //上页
$pagenext = site_url ($CI->uri->rsegment(1, 0).'/'.$CI->uri->rsegment(2, 0).'/page_'.($this->pagecur+1)); //下页
$pagefirst = site_url ($CI->uri->rsegment(1, 0).'/'.$CI->uri->rsegment(2, 0).'/page_1'); //首页
$pagelast = site_url ($CI->uri->rsegment(1, 0).'/'.$CI->uri->rsegment(2, 0).'/page_'.$this->pagenum); //尾页
if($this->pagecur > 1)
{
$this->pageurl .= '<a href="'.$pagefirst.'"> [首页] </a>';
$this->pageurl .= '<a href="'.$pageprev.'"> [上页] </a>';
}else{
$this->pageurl .= ' [首页] ';
$this->pageurl .= ' [上页] ';
}
if($this->pagecur < $this->pagenum)
{
$this->pageurl .= '<a href="'.$pagenext.'"> [下页] </a>';
$this->pageurl .= '<a href="'.$pagelast.'"> [尾页] </a>';
}else{
$this->pageurl .= ' [下页] ';
$this->pageurl .= ' [尾页] ';
}
if($this->pagenum <= 1)
{
$this->pageurl = '';
}
return $this->pageurl;
}
}
?>
复制代码
使用方法:
$this->load->library('pager');
echo $this->pager->page(总数据量, 每个页页显示数);
地址是自动获取的当前页看代码就知道了:) |
|