CI框架分页类的定义与使用方法是什么
导读:相信很多人对“CI框架分页类的定义与使用方法是什么”都不太了解,下面小编为你详细解释一下这个问题,希望对你有一定的帮助 本文实例讲述了CI框架简单分页类用法。分享给大家供大家参考,具体如下: /** * * 关于 页码有效性的...
相信很多人对“CI框架分页类的定义与使用方法是什么”都不太了解,下面小编为你详细解释一下这个问题,希望对你有一定的帮助
本文实例讲述了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; ?>
以上就是关于“CI框架分页类的定义与使用方法是什么”的介绍了,感谢各位的阅读,希望文本对大家有所帮助。如果想要了解更多知识,欢迎关注网络,小编每天都会为大家更新不同的知识。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: CI框架分页类的定义与使用方法是什么
本文地址: https://pptw.com/jishu/650884.html