2017-06-14 119 views
2

如何自定义下面的分页页码?PHP分页自定义页码

电流:

enter image description here

和我要的是:

1 2 3 4 5 Next Last Page 

这里是PHP代码:

for($i=1; $i<=$Num_Pages; $i++) 
{ 
    if($i != $Page) 
    { 
     echo "[ <a href='$_SERVER[SCRIPT_NAME]?Page=$i'>$i</a> ]"; 
    } 
    else 
    { 
     echo "<b> $i </b>"; 
    } 
} 

任何线索如何做到这一点?

+0

您是否也需要从当前页面进行操作?例如。如果你在第10页,那么它应该显示'10 11 12 13 14 Next Last Page'? –

+0

@ A.Lau是的,我需要它 –

回答

1

能试试这个:

$Num_Pages = 70; 

//$Page = $_GET['Page']; 
$Page = 12; 
$from = $Page - ($Page % 5) + 1; 

for($i=$from; $i<$from+5 && $i<$Num_Pages; $i++) 
{ 
    if($i != $Page) 
    { 
     echo "[ <a href='$_SERVER[SCRIPT_NAME]?Page=$i'>$i</a> ]"; 
    } 
    else 
    { 
     echo "<b> $i </b>"; 
    } 
} 
$next_page = $Page+1; 
echo "[ <a href='$_SERVER[SCRIPT_NAME]?Page=$next_page '>next</a> ]"; 
echo "[ <a href='$_SERVER[SCRIPT_NAME]?Page=$Num_Pages'>Last Page</a> ]"; 

更换$Page = 12$_GET动态获取的页面。

还没有真正测试过它。

+0

嗨,刘,我试过你的代码,但为什么出现0? 0 1 2 3 4,应该是1 2 3 4 5 –

+0

忘了+1,换成这个'$ from = $ Page - ($ Page%5)+1;' –

+0

谢谢A. Lau,它工作的很完美。 –

1
$start_page = intval($Page/5) *5 + 1; 
$to_page = $start_page + 4; 
$is_last_group = ($start_page + 5)> $Num_Pages); 
if (is_last_group) 
    $to_page = $Num_Pages; 
for($i = $start_page; $i <= to_page; $i++) 
    { 
     if($i != $Page) 
     { 
      echo "[ <a href='$_SERVER[SCRIPT_NAME]?Page=$i'>$i</a> ]"; 
     } 
     else 
     { 
      echo "<b> $i </b>"; 
     } 
    } 
if($page < $Num_Pages){ 
     $next_page = $page + 1; 
     echo "[ <a href='$_SERVER[SCRIPT_NAME]?Page=$next_page '>next</a> ]"; 
     echo "[ <a href='$_SERVER[SCRIPT_NAME]?Page=$Num_Pages'>last</a> ]"; 
} 
+0

这仍然会在下一个和最后一个打印它们,OP只需要四个,容易调整。 – Henry

+0

是的,尝试过,所有页码仍然显示全部 –