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

php实现分页选择按钮的三种方式

2014-09-10 00:23 267 查看
<?php

//分页类
class Page{
const PAGE_ALL = 0;
//默认使用全部分页内容
const PAGE_STR = 1;
//
const PAGE_CLI = 2;
//
const PAGE_SEL = 3;
//
const PAGE_STR_CLI = 4;
//
const PAGE_STR_SEL = 5;
//
const PAGE_CLI_SEL = 6;
//

/*
* 分页方法
* @param1 string $basename,请求的脚本文件
* @param2 int $counts,总记录数
* @param3 int $page,当前页码
* @return string,具有分页点击a标签的字符串
*
* 示例:总共多少条记录,每页显示多少条记录,当前是第几页,<a>首页</a>,<a>前一页</a>,后一页,末页
*/
public static function show($basename,$counts,$page = 1,$chose = 0){
//计算出总页数
$pagesize = $GLOBALS['config']['admin_goods_pagecounts'];
$pageCounts = ceil($counts / $pagesize);

//计算上一页和下一页
$prev = ($page == 1) ? $page : ($page - 1);
$next = ($page == $pageCounts) ? $page : ($page + 1);

//使用定界符来平凑字符串
$str = <<<ENDF
<span id="str_page">
总共有{$counts}条记录,每页显示{$pagesize}条,当前是第{$page}页  
<a href="{$basename}&page=1">首页</a>
<a href="{$basename}&page={$prev}">上一页</a>
<a href="{$basename}&page={$next}">下一页</a>
<a href="{$basename}&page={$pageCounts}">末页</a>  </span>

ENDF;

//增加一个类似点击按钮,1,2,3,4,5
//需求:1,2,3...---->1 ... 3,4,5 ...------->1 ... 5,6,7 ...
$click = '<span id="click_page">';
for($i = 1;$i <= $pageCounts;$i++){
if($page > 2){
//1 ... $page,$page+1,$page+2
//当页数大于等于3的时候
//一定要保留第一页
if($i == 1)$click .= "<a href='{$basename}&page=1'>1</a>  ...";
else{
//判断当前页是否为选中页
if($i == $page){
//从当前页开始,显示后三页
$click .= "<a href='{$basename}&page={$i}'>{$i}</a>  ";//当前页

//后两页,因为可能当前点击的就是末页,那么就不应该再有后面的页数了
$temp = $i + 1;
//后一页
if($temp <= $pageCounts){
$click .= "<a href='{$basename}&page={$temp}'>{$temp}</a>  ";
$temp = $i + 2;
//后两页
if($temp <= $pageCounts){
$click .= "<a href='{$basename}&page={$temp}'>{$temp}</a>  ";
}
}

}
}
}else{
//1,2,3 ...
//点击是前2页
//判断$pageCounts是否有三页
$click .= "<a href='{$basename}&page=1'>1</a>  ";
//判断是否有第二页
if($pageCounts >= 2){
$click .= "<a href='{$basename}&page=2'>2</a>  ";

//判断是否有第三页
if($pageCounts >= 3){
$click .= "<a href='{$basename}&page=3'>3</a>  ";
}
}
//中断执行
break;
}
}

//追加点
if($page <= $pageCounts - 3){
//如果当前点击的页是后三页中的任意一页,就不需要加上...
$click .= '...</span>';
}else{
$click .= '</span>';
}

//select下拉框分页
$select = "<span id='select_page'>  <select onchange=\"location.href='{$basename}&page='+this.value\">";
//循环遍历
for($i = 1;$i <= $pageCounts;$i++){
if($page == $i){
//默认选中当前页
$select .= "<option value='{$i}' selected='selected'>{$i}</option>";
}else{
$select .= "<option value='{$i}'>{$i}</option>";
}
}

//完善select
$select .= "</select></span>";

//返回当前拼凑好的分页
//判断用户需求,来进行选择性返回
switch($chose){
case 0:
default:
return $str . $click . $select;
case 1:
return $str;
case 2:
return $click;
case 3:
return $select;
case 4:
return $str . $click;
case 5:
return $str . $select;
case 6:
return $click . $select;
}

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