0.显示页面的场景
我们在搜寻引擎下寻找資料时,若是資料比较多,在最下面或是最上面都会有一些页面指标的东西。当我们点到某一页,画面就会跳到那一页显示。
这里展示一个用 PHP 写的换页小程式。
1.想要的效果
假设全部页码是 20 个。
我把效果的截图,连续显示如下:
2.程式说明
a. 程式是以 table 的方式控制画面排列,所以,程式必须放在 table/tr 的里面
<table><tr> <?php showPage() ?> </tr></table>
b. 使用时要加上总页数 $total_pages,以及当前页数 $num_pages.
function showPage($total_pages, $num_pages){
//......
}
c. 为了方便起见,我把要跳转的页面网址用字串指定。这个页面就是你当前页面的网址,不是其他的。
$str_page = '<td><a href="pagenumber.php?page='; //need to be changed
d. 跳转的技巧就是用《a》链接时加入 GET 的特性,就是网址后面接 “?”参数名 = “结果” , 这里的 “结果” 就是要跳转的页面。譬如:
echo $str_page. $total_pages .'">'.$total_pages.'</a></td>';
就是
<td><a href="pagenumber.php?page=20">20</a>
e. 当前页面的数字,要取消链接,所以:
if($i==$num_pages) { echo "<td>".$i;}
else {echo $str_page. $i .'">'.$i."</a>";}
f. 中间设定显示 5 个数字,加上前后面的修饰,加上 上一页 、下一页。用 if 、for 调整一下就变成这样。
if (isset($_GET['page'])) { $num_pages = $_GET['page'];}
else { $num_pages =1;}
$str_page = '<td><a href="opt_dsu_h_html.php?page='; //need to be changed
if ($total_pages <= 7 ){
echo "<td>页数: </td>";
for($i= 1 ;$i<= $total_pages;$i++){
if($i==$num_pages) { echo "<td>".$i;}
else {echo $str_page. $i .'">'.$i."</a>";}
echo "</td>";
}
echo "<td> 没有了 </td>";
}
if ($total_pages > 7 ){
// 若不是第一頁則顯示
if ($num_pages <= 4){
echo "<td>页数: </td>";
for($i= 1 ;$i<= 7 ;$i++){
if($i==$num_pages) { echo "<td>".$i;}
else {echo $str_page. $i .'">'.$i."</a>";}
echo "</td>";
}
echo "<td>...</td>";
echo $str_page. $total_pages .'">'.$total_pages.'</a></td>';
echo $str_page.($num_pages+1) .'">下一頁</a></td>';
}
if ($num_pages > 4 ){
echo $str_page. ($num_pages-1) .'">上一頁</a></td>';
echo $str_page. '1'.'">1</a></td>';
echo "<td>...</td>";
if (($num_pages+5) < $total_pages){
for($i=($num_pages-2) ;$i<= ($num_pages+2) ;$i++){
if($i==$num_pages) { echo "<td>".$i;}
else {echo $str_page. $i .'">'.$i."</a>";}
echo "</td>";
}
echo "<td>...</td>";
echo $str_page. $total_pages .'">'.$total_pages.'</a></td>';
echo $str_page.($num_pages+1) .'">下一頁</a></td>';
}
if (($num_pages+5) >= $total_pages) {
for($i=($total_pages-6) ;$i<= $total_pages ;$i++){
if($i==$num_pages) { echo "<td>".$i;}
else {echo $str_page. $i .'">'.$i."</a>";}
echo "</td>";
}
echo "<td> 没有了 </td>";
}
}
}
如果想要更好看,那就多写几行改改呗!