龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > web编程 > php编程 >

PHP分页 upgrade 20130125

时间:2014-07-22 14:51来源: 作者: 点击:
分享到:
p 分页用Class 这也太浪费资源了吧br / @ 20130125br / span style=font-family:Courier New;/spanspan style=font-family:Courier New;multi/spanspan style=font-family:Courier New;(/spanspan style=color:#337FE5;font-family:Courier New;$t

分页用Class 这也太浪费资源了吧
@ 20130125
multi($total$limit$displayTab$uri = NULL);
@parameter
$total             记录总数
$limit              单页记录数
$displayTab    定位按钮个数


<!doctype html>
<html>
<head>
<meta charset="utf-8" />
<title>multi</title>
<style>
a, input, select, textarea { outline: medium none; }
a:hover { background-color: #E5EDF2; }
.current { background-color: #E5EDF2; border: 1px solid #C2D5E3; color: #000000; display: block; float: left; font-family: Tahoma; font-size: 13px; font-weight: bold; line-height: 26px; margin-left: 5px; padding: 0 10px; text-align: center; text-decoration: none; }
.common { border: 1px solid #C2D5E3; color: #000000; display: block; float: left; font-family: Tahoma; font-size: 13px; line-height: 26px; margin-left: 5px; padding: 0 10px; text-align: center; text-decoration: none; }
.jump { border: 1px solid #C2D5E3; color: #000000; display: block; float: left; font-family: Tahoma; font-size: 13px; line-height: 26px; margin-left: 5px; padding: 0 10px; text-align: center; text-decoration: none; }
</style>
</head>

<body>
<?php

echo multi(1000, 10, 10);

function multi($total, $limit, $displayTab, $uri = NULL) {
	if($total <= $limit || $total == $limit) return (bool)false;
	$retval = '';
	$maxRange = $range = ceil($total/$limit);
	$displayTab = $maxRange < $displayTab ? $maxRange : $displayTab;
	$page = !empty($_GET['page']) && is_numeric($_GET['page']) ? 
	(intval($_GET['page']) > 0 && intval($_GET['page']) <= $maxRange ? 
	intval($_GET['page']) : 
	(intval($_GET['page']) > $maxRange ? $maxRange : 1)) : 1;
	$previous = $uri ? $uri.($page-1 <= 0 ? 1 : ($page-1 >= $maxRange ? $maxRange-1 : $page-1 )) : $_SERVER['PHP_SELF'].'?page='.($page-1 <= 0 ? 1 : ($page-1 >= $maxRange ? $maxRange-1 : $page-1 ));
	$next = $uri ? $uri.($page+1 > $maxRange ? $maxRange : $page+1) : $_SERVER['PHP_SELF'].'?page='.($page+1 > $maxRange ? $maxRange : $page+1);
	$jump = $uri ? $uri : $_SERVER['PHP_SELF'].'?page=';
	$retval .= $page > 1 ? '<a class="common" href="'.$previous.'" >上一页</a>' : '';
	if(empty($_GET['page']) || $_GET['page'] < $displayTab) {
		$start = 0;
		$range = $displayTab;
	}else {
		$range = !empty($_GET['page']) && intval($_GET['page']) + ($displayTab/2)  >= $range ? $range : intval($_GET['page']) + ($displayTab/2);
		$start = $range - $displayTab + 1;
	}
	for($i= $start; $i <= $range; $i++) {
			if($i <= 0) continue;
			$retval .= ((!empty($_GET['page']) && is_numeric($_GET['page']) ? ($_GET['page'] > $maxRange ? $maxRange : (intval($_GET['page']) <= 0 ? 1 : intval($_GET['page']))) : 1 ) == $i) ? '<a class="current" href="'. $jump.$i .'">'. $i .'</a>' : '<a class="common" href="'. $jump.$i .'">'. $i .'</a>';
	}
	$retval .= ($maxRange - (!empty($_GET['page']) && is_numeric($_GET['page']) ? $_GET['page'] : 1 )) > $displayTab ? '<a class="common" href="'. $jump.$maxRange .'">...'. $maxRange .'</a>' : '';
	$retval .= (!empty($_GET['page']) && is_numeric($_GET['page']) ? $_GET['page'] : 1 ) < $maxRange ? '<div class="jump"><input id="code" type="text" name="page" size="3" title="输入页码,按回车快速跳转" onkeyup="submits(event);">/ '. $maxRange .'页</div>' : '';
	$retval .= (!empty($_GET['page']) && is_numeric($_GET['page']) ? $_GET['page'] : 1 ) < $maxRange ? '<a class="common" href="'. $next .'">下一页</a>' : '';
	$retval .= '
	<script type="text/javascript">
	function submits(e) {
		var code = document.getElementById(\'code\');
		if(code.value != \'\') {
			if(code.value.match(/[0-9]{1,}/)) {
				if(e.keyCode == 13) {
					location.href= \''.$jump.'\' + code.value;
				}
			}else{
				if(e.keyCode == 13) {
					code.value = \'\';
				}
			}
		}
	}
	</script>';
	return $retval;
}

?>
</body>
</html>

2. [代码]20111227第一版     跳至 [1] [2] [全屏预览]

<?php

/**
 *      [WebodMin] (C)2010-2099 Blank Inc.
 *      This is open source code, You can borrow, but can not modify the copyright
 *		Update: 2011-12-27
**/

function multi($num,$limit,$loopvar,$style,$str=''){
	$count = ceil($num/$limit);
	$loopvar = $count < $loopvar ? $count : $loopvar;
	$_GET['page'] = !empty($_GET['page']) && $_GET['page'] <= $count ? $_GET['page'] : 1;
	$str .= $_GET['page'] > 1 && $_GET['page'] <= $count ? '<a class="'.$style.'" href="?page='.($_GET['page']-1 <=0 ? 1 : $_GET['page']-1).'">上一页</a>' : $_GET['page'] > 1 ? '<a class="'.$style.'" href="?page='.($_GET['page']-1 <=0 ? 1 : $_GET['page']-1).'">上一页</a>' : false;
	if(empty($_GET['page']) || $_GET['page'] < $loopvar) {
		for($i=0;$i<=$loopvar;$i++) {
			if($i !=0 ) {
				$str.= $_GET['page'] == $i ? '<a class="cruuent" href="?page='.$i.'">'.$i.'</a>' : '<a class="'.$style.'" href="?page='.$i.'">'.$i.'</a>';	
			}
		}
	}else{
		$size = $_GET['page']+1 >= $count ? $count : $_GET['page']+1; 
		$page = ($size-$loopvar)+1;
		for($i=$page;$i<=$size;$i++) {
			if($i !=0 ) {
				$str.= $_GET['page'] == $i ? '<a class="cruuent" href="?page='.$i.'">'.$i.'</a>' : '<a class="'.$style.'" href="?page='.$i.'">'.$i.'</a>';	
			}
		}
	}
	$str .= $_GET['page'] < $count ? '<a class="'.$style.'" href="?page='.($_GET['page']+1 >=$count ? $count : $_GET['page']+1).'">下一页</a>' : false;
	$str .='<a class="countNumber">共:'.$count.'页</a>';
	return $str;
}

echo multi(150,10,5,'a');
?>
<style>
.a {
	text-align: center;
	display: block;
	padding: 5px 10px 5px 10px;
	margin-right: 5px;
	float: left;
	font-size: 13px;
	color: #000;
	text-decoration: none;
	border: 1px solid #c2d5e3;
	font-family: Tahoma;
}
a:hover {
	border: 1px solid #000;
	font-weight:bold;
}
a.cruuent {
	text-align: center;
	display: block;
	padding: 5px 10px 5px 10px;
	margin-right: 5px;
	float: left;
	font-size: 13px;
	color: #000;
	text-decoration: none;
	border: 1px solid #c2d5e3;
	font-family: Tahoma;
	background-color:#e5edf2;
	font-weight:bold;
}
a.countNumber {
	border:none;
	text-align: left;
	display: block;
	padding:5px 5px 0px 5px;
	margin-right: 5px;
	float: left;
	font-size: 13px;
	font-weight:bold;
	color: #333;
	text-decoration: none;
	font-family: Tahoma;
}
</style>
精彩图集

赞助商链接