+ -
当前位置:首页 → 问答吧 → 刚写的分页导航,请指教,还有什么不妥的地方

刚写的分页导航,请指教,还有什么不妥的地方

时间:2006-08-07

来源:互联网

复制PHP内容到剪贴板
PHP代码:

<?php
//定义相关数据
$topictotal=261;                //总主题数
$pagepre=3;                       //前导页
$pageline=7;                     //可显示页数
$topicpage=15;                 //每页主题数

if($topictotal<=0)exit("获取主题出错或没有任何主题!");    //无主题时

//求得相关的数据
$pagetotal=ceil($topictotal/$topicpage);               //总页数
$topiclastpage=$topictotal%$topicpage;                   //最后页主题数

//当前页不在范围
if($p<1 || $p>$pagetotal)$p=1;               //重置当前页为1

if($pagetotal<=$pageline)                     //总页不足可显示页数
{
        $sp=1;
        $ep=$pagetotal;
}
else                                                      //总页足量
{
        if($p<=$pagepre)           //在最前几页
        {
                $sp=1;
                $ep=$pageline;
        }
        elseif($p>$pagetotal+$pagepre-$pageline)     //在最后几页
        {
                $sp=$pagetotal-$pageline+1;
                $ep=$pagetotal;
        }
        else                                                                //正常情况
        {
                $sp=$p-$pagepre+1;
                $ep=$p-$pagepre+$pageline;
        }

}

echo "当前页/总页:".$p."/".$pagetotal;

printf("<form action='%s' method='post' >",$_SERVER['PHP_SELF']);
for($i=$sp;$i<=$ep;$i++)                                                                //列出可显示页
{
       if($p==$i)                                                                             //当前页加粗
       {
                printf(" <b><a href='%s?p=%d'>%d</a></b> ",$_SERVER['PHP_SELF'],$i,$i);
       }
       else
       {
                printf(" <a href='%s?p=%d'>%d</a> ",$_SERVER['PHP_SELF'],$i,$i);
       }
}
printf("<input type=text size=2 name=p></form>");

$st=($p-1)*$topicpage+1;
$et=$p*$topicpage;

if($p==$pagetotal && $topiclastpage)$et=$st+$topiclastpage-1;

printf("<br><ul><b>主题列表</b><br><br>");
for($j=$st;$j<=$et;$j++)printf("<li><a href=javascript:alert('第%d主题')>第 %d 主题</a>",$j,$j);
printf("</ul>");

?>

[ 本帖最后由 七月十五 于 2006-8-6 23:49 编辑 ]

作者: 七月十五   发布时间: 2006-08-06

加一句
复制PHP内容到剪贴板
PHP代码:
if($topictotal<=0)exit("获取主题出错或没有任何主题!");    //无主题时

作者: 七月十五   发布时间: 2006-08-06

看起来感觉乱乱的,代码太长了……

作者: 深蓝色   发布时间: 2006-10-09

一般。。。。写的还可以。。

作者: visam   发布时间: 2006-10-09