//関数は指定されたページにジャンプします 関数 gotoPage(ページ) { document.getElementById("ページ""/> //関数は指定されたページにジャンプします 関数 gotoPage(ページ) { document.getElementById("ページ"">

ホームページ  >  記事  >  バックエンド開発  >  より包括的な PHP ページング ナビゲーション クラス

より包括的な PHP ページング ナビゲーション クラス

WBOY
WBOYオリジナル
2016-06-13 13:09:04766ブラウズ

比較的包括的な PHP ページング ナビゲーション クラス

POST モード ページング: http://hudeyong926.iteye.com/blog/764703

<script language="javascript">
//函数跳转到指定页面
function gotoPage(page)
{
    document.getElementById("page").value = page;  //隐藏表单的页控件
    document.getElementById("searchForm").submit();
}
</script>

<!-- 表单参考如下 -->
<form name="searchForm" id="searchForm" method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>">
    <!-- 下面是个隐藏页面号码值控件 -->
    <input type="hidden" name="page" id="page" size=30 value="1"/>
    <!-- 提交控钮,注意id和name不要把值设成"submit",我将其改为"submit1" -->
    <!-- 不然在gotoPage()函数里与表单的提交事件submit()有冲突,导至函数不运行 -->
    <input name="submit1" id="submit1" type="submit" value="查  找" size=30 />
</form>

<?php
/**
* 分页 echo multi(18,2,2);
* @param $num - 总数
* @param $perpage - 每页数
* @param $curpage - 当前页
* @param $maxpages - 允许显示的最大页数
* @param $page - 最多显示多少页码
* @param $simple - 是否简洁模式(简洁模式不显示上一页、下一页和页码跳转)
* @return 返回分页代码  
*/
function multi($num, $perpage, $curpage, $maxpages = 0, $page = 10, $simple = false) {
	$multipage = '';
	$realpages = 1;
	if ($num > $perpage) {
		$offset = 2;

		$realpages = @ceil($num / $perpage);
		$pages = $maxpages && $maxpages < $realpages ? $maxpages : $realpages;

		if ($page > $pages) {
			$from = 1;
			$to = $pages;
		} else {
			$from = $curpage - $offset;
			$to = $from + $page - 1;
			if ($from < 1) {
				$to = $curpage + 1 - $from;
				$from = 1;
				if ($to - $from < $page) {
					$to = $page;
				} 
			} elseif ($to > $pages) {
				$from = $pages - $page + 1;
				$to = $pages;
			} 
		} 
		//注意下面href后面我增加了一个#号,让链接失效,在后面增加onclick函数
		$multipage = ($curpage - $offset > 1 && $pages > $page ? '<a href="#" onclick="gotoPage(1);" class="first">1 ...</a>' : '') .
		($curpage > 1 && !$simple ? '<a href="#" onclick="gotoPage(' . ($curpage - 1) . ');" class="prev">??</a>' : '');
		for($i = $from; $i <= $to; $i++) {
			$multipage .= $i == $curpage ? '<strong>' . $i . '</strong>' :
			'<a href="#" onclick="gotoPage(' . $i .');">' . $i . '</a>';
		} 

		$multipage .= ($curpage < $pages && !$simple ? '<a href="#" onclick="gotoPage(' . ($curpage + 1) . ');" class="next">??</a>' : '') .
		($to < $pages ? '<a href="#" onclick="gotoPage('.$pages.');" class="last">... ' . $realpages . '</a>' : '') .
		//下面这一行注释掉,改了一下超过10页,可以手动输入页码跳转到指定页面函数
        (!$simple && $pages > $page ? '<kbd><input type="text" name="custompage" size="3" onkeydown="if(event.keyCode==13) {gotoPage(this.value);}" /></kbd>' : '');

		$multipage = $multipage ? '<DIV class="page">' . (!$simple ? '<em>共' . $num . '条</em>' : '') . $multipage . '</DIV>' : '';
	} 
	return $multipage;
} 
?>

GET モード ページング:

ページの左側のレイアウト:

?

?

?

?

ページ中央の

レイアウト



?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

ページの右側のレイアウト

?

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。