|登录 |注册

查看: 2680|回复: 12
打印 上一主题 下一主题

看看大家显示页数的coding是怎样的

 关闭 [复制链接]
wu6
2009-1-3 07:10 PM
资料库资料 : 400个records
每页显示records的数量 : 10个

例如当前在第五页, 就要显示 3 4 5 6 7
要考虑到第一,第二页的情况,最后一页的情况就不需要列入考虑范围。

看看大家的coding 长不长
Super-Tomato
2009-1-4 01:27 AM
建議樓主先把自己的 coding 貼出來會比較好吧
wu6
2009-1-8 11:21 AM
在这个例子,第一页和第二页是比较特殊的。
第一页要显示的是 1 2 3 4 5 而不是 -1 0 1 2 3
第二页要显示的是 1 2 3 4 5 而不是 0 1 2 3 4

我是这样写
<?php
for ($i <= $page - 2 ; $i <= $page + 2; $i++)
{
  if($page <= 2)
  {
  $j = $i + (3 - $page);
  echo "<a href = 'display.php?pid= $j '>$j</a>";
  }
else
echo "<a href = 'display.php?pid= $i '>$i</a>";

}

[ 本帖最后由 wu6 于 2009-1-8 12:23 PM 编辑 ]
Super-Tomato
2009-1-8 01:11 PM
原帖由 wu6 于 2009-1-8 11:21 AM 发表
在这个例子,第一页和第二页是比较特殊的。
第一页要显示的是 1 2 3 4 5 而不是 -1 0 1 2 3
第二页要显示的是 1 2 3 4 5 而不是 0 1 2 3 4

我是这样写
<?php
for ($i <= $page - 2 ; $i <= $page + 2; $i++)
{
  if($page <= 2)
  {
  $j = $i + (3 - $page);
  echo "<a href = 'display.php?pid= $j '>$j</a>";
  }
else
echo "<a href = 'display.php?pid= $i '>$i</a>";

}


不太明白為何要這樣寫, 如果只是為了要讓啟始頁為 1 的話, 大可這樣寫

<?PHP

$page = $page < 1? 1 : $page;
$max = $page + 5;

for($i=$page; $i <= $max; $i++)
    echo "<a href = 'display.php?pid=$i'>$i</a>";

?>
wu6
2009-1-8 07:46 PM
我想你不了解我要的是什么

我要当前的页数在中间。
就好像现在是第三页, 就是 1 2 3 4 5 而不是3 4 5 6 7
wu6
2009-1-8 07:47 PM
假设第十页 ,那么就是 8 , 9 , 10, 11 ,12
wu6
2009-1-8 07:49 PM
原帖由 Super-Tomato 于 2009-1-8 01:11 PM 发表

不太明白為何要這樣寫, 如果只是為了要讓啟始頁為 1 的話, 大可這樣寫

<?PHP

$page = $page < 1? 1 : $page;
$max = $page + 5;

for($i=$page; $i <= $max; $i++)
    echo "<a href = 'display.php?pid=$i'>$i</a>";

?>

  


像你这样写,如果我现在在第八页,那么就是 8 9 10 11 12, 如果我要返回第七页,那么就没有选择了,所以应该要是 6 7 8 9 10
Super-Tomato
2009-1-8 08:28 PM
原帖由 wu6 于 2009-1-8 07:46 PM 发表
我想你不了解我要的是什么

我要当前的页数在中间。
就好像现在是第三页, 就是 1 2 3 4 5 而不是3 4 5 6 7



明白你的意思了, 靈活性寫法可以這樣

<?PHP

$view_page = 9;  //總共需要顯示的頁數, 只要更改這個即可
$range = floor($view_page /2);
$start_page = $page <= $range ? 1 : $page - $range;
$end_page = $start_page + $view_page;

for($i=$start_page; $i < $end_page; $i++)
    echo " " . ($page != $i ? "<a href = 'display.php?pid=$i'>$i</a> " : $i);

?>


p/s: 怎麼根據資料筆數計算最後一頁就看你自己了

[ 本帖最后由 Super-Tomato 于 2009-1-8 08:34 PM 编辑 ]
wu6
2009-1-9 08:09 PM
那么如果要显示n 页数,我的写法是


<?php

$temp1 = 5 //显示数量
$temp = floor($temp / 2);

for ($i <= $page - $temp ; $i <= $page + $temp; $i++)
{
  if($page <= 2)
  {
  $j = $i + (($temp + 1) - $page);
  echo "<a href = 'display.php?pid= $j '>$j</a>";
  }
else
echo "<a href = 'display.php?pid= $i '>$i</a>";

}
wu6
2009-1-9 08:09 PM
只有我们两个人哦?没有其他人哦?
您需要登录后才可以回帖 登录 | 注册

JBTALKS.CC |联系我们 |隐私政策 |Share

GMT+8, 2025-4-17 04:51 PM , Processed in 0.137968 second(s), 24 queries .

Powered by Discuz! X2.5 © 2001-2012 Comsenz Inc.

本论坛言论纯属发表者个人意见,与本论坛立场无关
Copyright © 2003-2012 JBTALKS.CC All Rights Reserved

Dedicated Server powered by iCore Technology Sdn. Bhd.

合作联盟网站:
JBTALKS 马来西亚中文论坛 | JBTALKS我的空间 | ICORE TECHNOLOGY SDN. BHD.
回顶部