Facebook Sharer
选择您要替换的背景颜色:
【农历新年】背景图片:
个性化设定
 注册  找回密码
查看: 2634|回复: 12
打印 上一主题 下一主题

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

 关闭 [复制链接]

19

主题

0

好友

408

积分

翡翠长老

Rank: 6Rank: 6Rank: 6Rank: 6Rank: 6Rank: 6

跳转到指定楼层
1#
发表于 2009-1-3 07:10 PM |只看该作者 |倒序浏览
资料库资料 : 400个records
每页显示records的数量 : 10个

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

看看大家的coding 长不长




收藏收藏0

7

主题

1

好友

5108

积分

一流名嘴

Rank: 12Rank: 12Rank: 12

2#
发表于 2009-1-4 01:27 AM |只看该作者
建議樓主先把自己的 coding 貼出來會比較好吧


回复

使用道具 举报

19

主题

0

好友

408

积分

翡翠长老

Rank: 6Rank: 6Rank: 6Rank: 6Rank: 6Rank: 6

3#
发表于 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 编辑 ]


回复

使用道具 举报

7

主题

1

好友

5108

积分

一流名嘴

Rank: 12Rank: 12Rank: 12

4#
发表于 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>";

?>


回复

使用道具 举报

19

主题

0

好友

408

积分

翡翠长老

Rank: 6Rank: 6Rank: 6Rank: 6Rank: 6Rank: 6

5#
发表于 2009-1-8 07:46 PM |只看该作者
我想你不了解我要的是什么

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


回复

使用道具 举报

19

主题

0

好友

408

积分

翡翠长老

Rank: 6Rank: 6Rank: 6Rank: 6Rank: 6Rank: 6

6#
发表于 2009-1-8 07:47 PM |只看该作者
假设第十页 ,那么就是 8 , 9 , 10, 11 ,12


回复

使用道具 举报

19

主题

0

好友

408

积分

翡翠长老

Rank: 6Rank: 6Rank: 6Rank: 6Rank: 6Rank: 6

7#
发表于 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


回复

使用道具 举报

7

主题

1

好友

5108

积分

一流名嘴

Rank: 12Rank: 12Rank: 12

8#
发表于 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 编辑 ]


回复

使用道具 举报

19

主题

0

好友

408

积分

翡翠长老

Rank: 6Rank: 6Rank: 6Rank: 6Rank: 6Rank: 6

9#
发表于 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>";

}


回复

使用道具 举报

19

主题

0

好友

408

积分

翡翠长老

Rank: 6Rank: 6Rank: 6Rank: 6Rank: 6Rank: 6

10#
发表于 2009-1-9 08:09 PM |只看该作者
只有我们两个人哦?没有其他人哦?


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

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

GMT+8, 2025-2-6 11:41 AM , Processed in 0.109279 second(s), 26 queries .

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

Ultra High-performance Dedicated Server powered by iCore Technology Sdn. Bhd.
Domain Registration | Web Hosting | Email Hosting | Forum Hosting | ECShop Hosting | Dedicated Server | Colocation Services
本论坛言论纯属发表者个人意见,与本论坛立场无关
Copyright © 2003-2012 JBTALKS.CC All Rights Reserved
合作联盟网站:
JBTALKS 马来西亚中文论坛 | JBTALKS我的空间 | ICORE TECHNOLOGY SDN. BHD.
回顶部