レンダリング:
以前、ページ番号メソッドのページネーション効果を見たことがあるのですが、ページ番号が多すぎると、60 ページを超えるまで改行が表示され続けます。見た目にも少し影響しますよ!
そこで、範囲に自動的に適応できるページ番号ページング プログラムを作成しました
つまり、ページ番号の形式は次のとおりです
<<< 4 5 6 7 > ページ番号は長すぎて見た目に影響を与えるのを避けるためです。 コードは主に初心者が読むためにコメントされています。笑、この関数はプレゼンテーション構造の分離を考慮せずに書かれています。専門家はそれを追求すべきではありません!
コンテンツをクリップボードにコピーします
コード:
function page($page,$total,$phpfile,$pagesize=10,$pagelen=7){ $pagecode = ''; //ページングによって生成された HTML を保存する変数を定義します
if(!$total) return array();//レコードの合計数がゼロの場合、空の配列を返します<br/> $pages = ceil($total/$pagesize);//合計ページングを計算します<br/> //ページ番号の処理は正当です Properties<br/> if($page<1) $page = 1;<br/> if($page>$pages) $page = $pages;<br> //クエリオフセットを計算します<br> $offset = $ pagesize*($page-1);<br> //ページ範囲の計算<br> $init = 1;//開始ページ番号<br> $max = $pages ;//終了ページ番号<br> $pagelen = ($pagelen%2)?$pagelen:$pagelen+1;//ページ番号の数<br> $pageoffset = ($pagelen-1)/2;//ページ番号の左右のオフセット<br><br> //HTML を生成<br> $pagecode='<div class="page">';<br> $pagecode.="<span> $page/$pages</span>";//いいえ、何ページ、合計何ページ<br> //最初のページの場合、最初のページと前のページのつながりは表示されません<br> if($page!=1){<br> $pagecode.="< ;a href="{$phpfile}?page=1"><<</a>";//最初のページ<br> ?page=".($page-1).""><</a>";//前のページ<br> }<br> //ページ数の場合ページ数より大きい場合は、オフセットすることができます。 <br> if($pages>$pagelen){<br> //現在のページが左オフセット以下の場合<br> if($page< =$pageoffset){<br> $init=1;<br> $ max = $pagelen;<br> }else{//現在のページが左のオフセットより大きい場合<br> //右のオフセットの場合現在のページ番号が最大ページ数を超えています <br> if($page+$pageoffset>=$pages+ 1){<br> $init = $pages-$pagelen+1;<br> }else{<br> pageoffset ;<br> $max = $page+$pageoffset;<br> }<br> }<br> }<br> //html<br> を生成 for($i=$init;$i<=$max;$ i++){ <br> if($i==$page){<br> $pagecode.='<span>'.$i.'</span>';<br> } else {<br> $pagecode.="<a href="{$phpfile}?page={$i}">$i</a>";<br> }<br> }<br> if($page!=$pages){<br> $pagecode.="<a href=\"{$phpfile}?page=".($page+1)."\">></a>";//下一页<br> $pagecode.="<a href=\"{$phpfile}?page={$pages}\">>></a>";//最后一页<br> }<br> $pagecode.='</div>';<br> return array('pagecode'=>$pagecode,'sqllimit'=>' limit '.$offset.','.$pagesize);<br>}<br>?></p>函数参数:<br>$page 当前$_GET获得的页码<br>$total 总记录数<br>$phpfile 页码连接文件名<br>$pagesize 不用解释了吧 呵呵<br>$pagelen 最多显示几个页码 注意(奇数),对称嘛!<br>函数返回一个数组:<br>pagecode 索引对应的内容是 生成的HTML 代码<br>sqllimit 索引对应的是sql limit 后缀<br><br>使用方法:
<p class="blockcode"><em onclick="copycode($('code1'));">复制内容到剪贴板</em>
</p>
<h5>代码:</h5>
<code id="code1"><?php<br/>$phpfile = 'index.php';<br/>$page= isset($_GET['page'])?$_GET['page']:1;<br/>$db = new Mysql();<br/>$counts = $db->counts('select `id` from `test`');<br>$sql='select `id`,`title` from `test`';<br>$getpageinfo = page($page,$counts,$phpfile);<br>$sql.=$getpageinfo['sqllimit'];<br>$data = $db->getRows($sql);<br>?><br><?php<br/>echo $getpageinfo['pagecode'];//显示分页的html代码<br/>?>
补贴css
复制内容到剪贴板
<style type="text/css"><br>body{font-family:Tahoma;}<br>.page{padding:2px;font-weight:bolder;font-size:12px;}<br>.page a{border:1px solid #ccc;padding:0 5px 0 5px;margin:2px;text-decoration:none;color:#333;}<br>.page span{padding:0 5px 0 5px;margin:2px;background:#09f;color:#fff;border:1px solid #09c;}<br></style>
<font face="Verdana">以下是HTML网页特效代码,点击运行按钮可查看效果:<p class="UBBContainer"></p>
<p class="UBBTitle"> 以下是程序代码</p>
<p class="UBBContent"><textarea rows="8" id="CodeText33417" class="UBBText"><style type="text/css">
.page { width:auto; height:auto }
.page ul { list-style:none; paddingL0; margin:0 }
.page li { width:auto; height:20px; line-height:20px; float:left; margin-right:2px; color:#000; display:block; font-size:12px }
.page li a { width:auto; height:20px; line-height:20px; border:1px solid #CCC; float:left; margin-right:2px; color:#000; TEXT-DECORATION: none; display:block; padding:0 5px; font-size:12px }
.page li a:hover { background:blue; color:white; TEXT-DECORATION: none; border:1px solid blue }
</style>
<div class="page">
<ul>
<li><a href="#">1</a></li>
<li><a href="#">2</a></li>
<li><a href="#">3</a></li>
<li><a href="#">4</a></li>
<li><a href="#">5</a></li>
<li><a href="#">6</a></li>
<li><a href="#">7</a></li>
<li><a href="#">8</a></li>
<li><a href="#">9</a></li>
<li><a href="#">10</a></li>
<li><a href="#">11</a></li>
<li><a href="#">12</a></li>
<li><a href="#">13</a></li>
<li><a href="#">14</a></li>
<li><a href="#">15</a></li>
</ul>
</div></font>