偶的分页显示函数(2008年2月9日更新)
时间:2008-02-04
来源:互联网
根据adleyliu的PHP经典分页导航函数
修改而成,更适合我些,嘿嘿,共享出来给大家
UPDATE:我做了个轮子。。。
下载代码:

PHP代码:
<?php
/****************************
作者 : Oldjan
功能 : 分页导航显示函数
更新 : 2008-02-09 17:59
$selfurl : 当前脚本路径
$query : 脚本请求数组
$queryurl : 脚本请求字符串
$url : 新的脚本URL
$total : 记录总数
$page : 当前页数
$pagenum : 每页显示记录数
$pagesum : 总页数
$pageleft : 最左边页
$pageright: 最右边页
*****************************/
function pagedisplay($total, $pagenum) {
$selfurl = $_SERVER['PHP_SELF'];
parse_str($_SERVER['QUERY_STRING'], $query);
$page = intval($query['page']) > 0 ? intval($query['page']) : 1;
$pagesum = ceil($total / $pagenum);
if($page > $pagesum) {
$page = 1;
}
//判断最左边页数和最右边页数,在当前页数左右都不超过2个
$pageleft = $page >= 4 ? $page - 2 : 1;
$pageright = $page + 2 <= $pagesum ? $page + 2 : $pagesum;
//若当前页数大于1,则显示上一页按钮
if(1 < $page) {
$query['page'] = $page - 1;
$queryurl = http_build_query($query);
$url = $selfurl.'?'.$queryurl;
$pageoutput .= '<a href="'.$url.'"><<</a>';
}
//若最左边页数大于1,则显示第一页按钮
if(1 < $pageleft) {
$query['page'] = 1;
$queryurl = http_build_query($query);
$url = $selfurl.'?'.$queryurl;
$pageoutput .= '<a href="'.$url.'">1...</a>';
}
//显示最左边按钮到最右边按钮
for($i = $pageleft; $i <= $pageright; $i++) {
if($page == $i) {
$pageoutput .= '<span class="self">'.$i.'</span>';
} else {
$query['page'] = $i;
$queryurl = http_build_query($query);
$url = $selfurl.'?'.$queryurl;
$pageoutput .= '<a href="'.$url.'">'.$i.'</a>';
}
}
//若最右边页数小于总页数,则显示最后一页按钮
if($pageright < $pagesum) {
$query['page'] = $pagesum;
$queryurl = http_build_query($query);
$url = $selfurl.'?'.$queryurl;
$pageoutput .= '<a href="'.$url.'">...'.$pagesum.'</a>';
}
//若当前页数小于总页数,则显示下一页按钮
if($pagesum > $page) {
$query['page'] = $page + 1;
$queryurl = http_build_query($query);
$url = $selfurl.'?'.$queryurl;
$pageoutput .= '<a href="'.$url.'">>></a>';
}
return $pageoutput;
}
$pagenum = 11;
$total= 111;
$pagedisplay = pagedisplay($total, $pagenum);
?>
<html>
<head>
<meta http-equiv="Content-Type" c />
<title>分页导航显示函数演示</title>
<style type="text/css">
<!--
.page {text-align: right; clear: both;margin: 0; padding: 11px; font: 12px Arial, Helvetica, sans-serif; color: #6396d6;}
.page .self {font-weight: bold; text-decoration: underline; background: #298ac6; color: #fff; margin: 0px 2px; padding: 3px; border: #6396d6 1px solid;}
.page a {color: #6396d6; background: #f7fbff; margin: 0px 2px; padding: 3px; text-decoration: none; border: #6396d6 1px solid;}
.page a:visited {color: #6396d6;}
.page a:hover {background: #298ac6; color: #fff; text-decoration: underline;}
-->
</style>
</head>
<body>
<div class="page"><?php echo $pagedisplay;?></div>
</body>
</html>
作者: oldjan 发布时间: 2008-02-03
作者: php? 发布时间: 2008-02-04
作者: php? 发布时间: 2008-02-04

作者: luzhou 发布时间: 2008-02-04
$pageoutput .= '<a href="'.$self.'?page='.($page - 1).'"><<</a>';
如果页面还带有其他参数呢?
用 http_build_query 吧
作者: dvaknheo 发布时间: 2008-02-04
@dvaknheo HOHO,我太马虎啦,已修改
[ 本帖最后由 oldjan 于 2008-2-9 18:08 编辑 ]
作者: oldjan 发布时间: 2008-02-05
看了一下PEAR 那个PAGER,原来人家是自己写的build_query
作者: liuxingyuyuni 发布时间: 2008-02-11

作者: luzhou 发布时间: 2008-02-11
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28