本文实例讲述了CI框架简单分页类用法。分享给大家供大家参考,具体如下:


/**  *  * 关于 页码有效性的判断需要加在 控制器中判断,即当页码数<1或者>总页数  *  */ class Custom_pagination {   var $page_url = ''; //分页目标URL   var $page_size = 10; //每一页行数   var $page_num = 1;//页码   var $rows_num= '';//数据总行数   var $links_num= 3;//选中链接前后的链接数,必须大于等于1    var $anchor_class= '';//链接样式类   var $current_class= '';//当前页样式类   var $full_tag_open= '';//分页开始标签   var $full_tag_close= '';//分页结束标签   var $info_tag_open= '';   var $info_tag_close= ' ';   var $first_tag_open= '';   var $first_tag_close= ' ';   var $last_tag_open= ' ';   var $last_tag_close= '';   var $cur_tag_open= ' <strong>';   var $cur_tag_close= '</strong>';   var $next_tag_open= ' ';   var $next_tag_close= ' ';   var $prev_tag_open= ' ';   var $prev_tag_close= '';   var $num_tag_open= ' ';   var $num_tag_close= '';    public function __construct($params = array())   {     if (count($params) > 0)     {       $this->init($params);     }   }     function init($params = array()) //初始化数据   {     if (count($params) > 0)     {       foreach ($params as $key => $val)       {         if (isset($this->$key))         {           $this->$key = $val;         }       }     }   }     function create_links()   {     ///////////////////////////////////////////////////////     //准备数据     ///////////////////////////////////////////////////////     $page_url = $this->page_url;     $rows_num = $this->rows_num;     $page_size = $this->page_size;     $links_num = $this->links_num;      if ($rows_num == 0 OR $page_size == 0)     {       return '';     }      $pages = intval($rows_num/$page_size);     if ($rows_num % $page_size)     {       //有余数pages+1       $pages++;     };     $page_num = $this->page_num < 1 ? '1' : $this->page_num;      $anchor_class = '';     if($this->anchor_class !== '')     {       $anchor_class = 'class="'.$this->anchor_class.'" ';     }      $current_class = '';     if($this->current_class !== '')     {       $current_class = 'class="'.$this->current_class.'" ';     }     if($pages == 1)     {       return '';     }     if($links_num < 0)     {       return '- -!links_num必须大于等于0';     }     ////////////////////////////////////////////////////////     //创建链接开始     ////////////////////////////////////////////////////////     $output = $this->full_tag_open;     $output .= $this->info_tag_open.'共'.$rows_num.'条数据 第 '.$page_num.'/'.$pages.' 页'.$this->info_tag_close;     //首页     if($page_num > 1)     {       $output .= $this->first_tag_open.'<a '.$anchor_class.' href="'.site_url($page_url).'" rel="external nofollow" >首页</a>'.$this->first_tag_close;     }     //上一页     if($page_num > 1)     {       $n = $page_num - 1;       $output .= $this->prev_tag_open.'<a '.$anchor_class.' href="'.site_url($page_url.'/'.$n).'" rel="external nofollow" rel="external nofollow" >上一页</a>'.$this->prev_tag_close;     }     //pages     for($i=1;$i<=$pages;$i++)     {       $pl = $page_num - $links_num < 0 ? 0 : $page_num - $links_num;       $pr = $page_num + $links_num > $pages ? $pages : $page_num + $links_num;       //判断链接个数是否太少,举例,假设links_num = 2,则链接个数不可少于 5 个,主要是 当page_num 等于 1, 2 和 n,n-1的时候       if($pr < 2 * $links_num + 1)       {         $pr = 2 * $links_num + 1;       }       if($pl > $pages-2 * $links_num)       {         $pl = $pages - 2 * $links_num;       }       if($i == $page_num)       {  //current page         $output .= $this->cur_tag_open.'<span '.$current_class.' >'.$i.'</span>'.$this->cur_tag_close;       }else if($i >= $pl && $i <= $pr)       {         $output .= $this->num_tag_open.'<a '.$anchor_class.' href="'.site_url($page_url.'/'.$i).'" rel="external nofollow" >'.$i.'</a>'.$this->num_tag_close;       }     }     //下一页     if($page_num < $pages)     {       $n = $page_num + 1;       $output .= $this->next_tag_open.'<a '.$anchor_class.' href="'.site_url($page_url.'/'.$n).'" rel="external nofollow" rel="external nofollow" >下一页</a>'.$this->next_tag_close;     }     //末页     if($page_num < $pages)     {       $output .= $this->last_tag_open.'<a '.$anchor_class.' href="'.site_url($page_url.'/'.$pages).'" rel="external nofollow" >末页</a>'.$this->last_tag_close;     }      $output.=$this->full_tag_close;     return $output;   } }

控制器里调用


$config['page_url'] = 'about/science'; $config['page_size'] = $pagesize; $config['rows_num'] = $num_rows; $config['page_num'] = $page; $this->load->library('Custom_pagination'); $this->custom_pagination->init($config); echo $this->custom_pagination->create_links();


<?php class page{      public $page; //当前页   public $pagenum; // 页数   public $pagesize; // 每页显示条数   public function __construct($count, $pagesize){     $this->pagenum = ceil($count/$pagesize);     $this->pagesize = $pagesize;     $this->page =(isset($_GET['p'])&&$_GET['p']>0) ? intval($_GET['p']) : 1;   }   /**    * 获得 url 后面GET传递的参数    */    public function getUrl(){       $url = 'index.php?'.http_build_query($_GET);     $url = preg_replace('/[?,&]p=(\w)+/','',$url);     $url .= (strpos($url,"?") === false) ? '?' : '&';     return $url;   }   /**    * 获得分页HTML    */   public function getPage(){     $url = $this->getUrl();     $start = $this->page-5;     $start=$start>0 ? $start : 1;      $end  = $start+9;     $end = $end<$this->pagenum ? $end : $this->pagenum;     $pagestr = '';     if($this->page>5){       $pagestr = "<a href=".$url." rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" p=1".">首页</a> ";     }     if($this->page!=1){       $pagestr.= "<a href=".$url." rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" p=".($this->page-1).">上一页</a>";     }          for($i=$start;$i<=$end;$i++){       $pagestr.= "<a href=".$url." rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" p=".$i.">".$i."</a> ";                }     if($this->page!=$this->pagenum){       $pagestr.="<a href=".$url." rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" p=".($this->page+1).">下一页</a>";            }     if($this->page+5<$this->pagenum){       $pagestr.="<a href=".$url." rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" p=".$this->pagenum.">尾页</a> ";     }     return $pagestr;     }    } // 测试代码 $page = new page(100,10); $str=$page->getPage(); echo $str; ?>

推荐教程:《PHP》


更多相关文章

  1. 分析php生成短网址/短链接原理和用法实例
  2. 营销模块数据库表解析:首页内容推荐功能
  3. 超链接的lvha原则
  4. 尝试用动态内容填充分享Twitter链接
  5. JavaScript / jQuery:如何链接使用console.log()的方法
  6. 禁用链接以停止在JQuery中双击
  7. jQuery图片热点链接添加编辑插件
  8. JQuery仿最新淘宝网首页带箭头幻灯片,JQuery轮播图
  9. 如何在HTML中为移动页面创建图像下载链接?

随机推荐

  1. Android(安卓)studio新建activity运行出
  2. 笔记-LinearLayout设置selector不起作用
  3. Android代码混淆一定要Export Android Ap
  4. android实现九宫格程序
  5. Android Studio 运行时出现 finished wit
  6. Android-- 输入法键盘控制
  7. Telephony Call
  8. Android的Location功能代码
  9. 记录几个android学习网站
  10. Android process与Thread 的问题