您的位置:首页 > 编程语言 > PHP开发

Thinkphp 自动生成页码 分页显示

2014-07-09 16:03 288 查看
代码全部是在ThinkPHP框架下编写。

页码自动生成函数,

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>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: