Thinkphp 自动生成页码 分页显示
2014-07-09 16:03
288 查看
代码全部是在ThinkPHP框架下编写。
页码自动生成函数,
输出到页面展示,使用数组也可以,但是html页码当中不明了。
HTML页面页码,超链接
页码自动生成函数,
public function page_nav($page_id, $log_num,$page_step) { /* * 根据总的日志数目以及每页展示的数目,计算总共有多少页 根据传递进来的当前页面的页码, * 自动生成左右相邻两页代码链接,以及前一页等 使用U函数生成页码超链接 * @ $page_id当前页面页码 * @ $log_num总共有多少条带显示数据 * @ $page_step每页显示多少条 */ // 计算总的页数 $logCount = $log_num; //$page_num = ( int ) ($log_num / $page_step) + ($log_num % $page_step > 0); $page_num = ceil ($log_num / $page_step); // 前一页 $page_previous = 1; if ($page_id > 1) { $page_previous = $page_id - 1; } // 下一页 $page_next = $page_num; if ($page_id < $page_num) { $page_next = $page_id + 1; } // 起始页 尾页 $page_1st = 1; $page_end = $page_num; if ($page_num > 5) { // 动态页码生成 页码列表 前两页 后两页 if ($page_id < ($page_num - 1) and $page_id > 2) { $page_id_array = array ($page_id - 2,$page_id - 1,$page_id,$page_id + 1,$page_id + 2); } elseif ($page_id < 3) { $page_id_array = array (1,2,3,4,5); } elseif ($page_id > $page_num - 2) { $page_id_array = array ($page_num - 4,$page_num - 3,$page_num - 2,$page_num - 1,$page_num); } } else { //小于5页 有几页 显示几页 for($i = 0; $i <$page_num; $i ++) { $page_id_array[$i]=$i+1; } } // 所有信息合并到一个数组 $page_info_array = array ($logCount,$page_num,$page_id,$page_1st,$page_previous,$page_next,$page_end,$page_id_array); // $page_info_array[7]=$page_id_array; return $page_info_array; }
输出到页面展示,使用数组也可以,但是html页码当中不明了。
// 调用同一控制器page_nav函数 获取页面 页码等相关信息 $page_step=50; $page_info_array = $this->page_nav ( $page_id, $log_num,$page_step); //dump($page_info_array); $this->logCount = $page_info_array [0]; $this->page_num = $page_info_array [1]; $this->page_id = $page_info_array [2]; $this->page_1st = $page_info_array [3]; $this->page_previous = $page_info_array [4]; $this->page_id_array = $page_info_array [7]; $this->page_next = $page_info_array [5]; $this->page_end = $page_info_array [6]; $this->display ();
HTML页面页码,超链接
<!--页码列表 --> <div class="page_nav"> <span> {$logCount}条数据 共{$page_num}页 第{$page_id}页</span> <!-- <a href={:U('index?page_id='.$page_1st)}>首页</a> --> <a href={:U( 'index',array('page_id'=>$page_1st))}>首页</a> <a href={:U( 'index',array('page_id'=>$page_previous))}>上一页</a> <a href={:U( 'index',array('page_id'=>$page_id_array[0]))}>{$page_id_array.0}</a> <a href={:U( 'index',array('page_id'=>$page_id_array[1]))}>{$page_id_array.1}</a> <a href={:U( 'index',array('page_id'=>$page_id_array[2]))}>{$page_id_array.2}</a> <a href={:U( 'index',array('page_id'=>$page_id_array[3]))}>{$page_id_array.3}</a> <a href={:U( 'index',array('page_id'=>$page_id_array[4]))}>{$page_id_array.4}</a> <a>...</a> <a href={:U( 'index',array('page_id'=>$page_next))}>下一页</a> <a href={:U( 'index',array('page_id'=>$page_num))}>尾页</a> </div>
相关文章推荐
- iText和flying saucer结合生成pdf--显示分页页码
- Thinkphp5 自定义分页样式显示页码和数量
- 设置gridview自动分页的页码不显示
- 使用该JavaBean可以将数据在JSP页面中以表格的形式显示出来,并具有动态排序、动态生成查询、自动分页功能
- 不显示删除回复显示所有回复显示星级回复显示得分回复 [推荐] Asp.NET生成静态页面并分页
- asp.net2.0自动根据用户自定义字数生成带分页的静态(HTML)页
- DataGrid自动生成列 控制列头显示
- C#一个显示分页页码类
- 长文章分页显示思路及页码条显示新思路
- C#一个显示分页页码类
- .Net通用分页类(存储过程分页版,可以选择页码的显示样式,且有中英选择)
- 对《自定义GridView分页模板中页码Button的实现》中程序的改进,追加显示空行功能
- 为数据库的表自动生成行号----为分页打好基础(仿Oracle的ROWNUM)
- PHP分页效果 页码自动适应范围
- 长文章分页显示思路及页码条显示新思路
- 关于HTML静态页面(含自动分页)生成的可行性方案
- Gridview中当设置自动生成列时对列中字段使用 html代码显示
- SQL SERVER 分页处理,自动识别标准SQL语句并生成适合分页的SQL语句
- asp.net2.0自动根据用户自定义字数生成带分页的静态(HTML)页 v1.5 beta
- 利用模板将指定目录下的所有图片自动生成含多个分页的图片静态网页