【问题标题】:pagination for custom PHP site [closed]自定义PHP网站的分页[关闭]
【发布时间】:2012-11-12 21:12:05
【问题描述】:

我有自定义 PHP 站点并使用此脚本进行分页。

echo "Page <strong>$pagenum</strong> of <strong>$last</strong><br><br>";
    if ($pagenum == 1)
    {
    }
    else
        {
        echo "<li> <a href='{$_SERVER['PHP_SELF']}?pagenum=1'><strong>First page</strong></a></li>";
        echo " ";
        $previous = $pagenum-1;
        echo "<li> <a href='{$_SERVER['PHP_SELF']}?pagenum=$previous'>".$previous."</a></li>";
        }

        echo "";


    if ($pagenum == $last)
        {           
        }
    else {
        $next = $pagenum+1;
        echo "  ....  <li><a href='{$_SERVER['PHP_SELF']}?pagenum=$next'> ".$next."</a></li>";
        echo " ";
        echo "<li><a href='{$_SERVER['PHP_SELF']}?pagenum=$last'><strong>Last page</strong></a></li>";
    } 

这仅显示最后两页,甚至不显示第一页。如何自定义它以显示前 5 页和后 5 页。

【问题讨论】:

  • Wtf 是一个“自定义”的 php 站点?
  • 我知道的不多。网站不在任何开源 CMS 中。
  • 显然,要显示的页面在变量$pagenum中。这是要检查的变量。
  • 如果您不在第一页,它将显示一个链接。要显示前 5 个和后 5 个,需要完全重写。
  • 了解 PHP,尝试一些东西,然后返回一个具体的问题。就像现在一样,这是一个请为我编写代码的问题。

标签: php pagination


【解决方案1】:

不过,这一切都取决于您的页面的存储位置和方式!如果您使用数据库执行此操作,则需要检查 $pagenum (我们在任何地方都看不到定义)是否具有上一页/下一页...并在此基础上绘制 +/- 5 页锚点!最好做一些循环!

另一方面,如果您没有使用任何数据库,只是想根据 ?pagenum=(number) 显示一些内容,这就是您在这里所做的!一旦用户在新页面上,您需要通过 $_GET['pagenum'] 获取当前页面!以便内容正确显示!

$pagenum = isset( $_GET['pagenum'] ) ? intval($_GET['pagenum']) : 0;

那么您只需执行以下操作:

echo "<a href=\"{$_SERVER['PHP_SELF']}?pagenum=$first\">first</a>";

for ( $i = $pagenum-5; $i <= $pagenum+5; ++$i ) // check if the pages exist as well somewhere ;)
{
    if ( $pagenum != $i ) 
    {
        echo "<a href=\"{$_SERVER['PHP_SELF']}?pagenum=".($i)."\">$i</a>";
    }
    else
    {
        echo "<a href=\"#\">Current</a>";
    }
}

echo "<a href=\"{$_SERVER['PHP_SELF']}?pagenum=$last\">last</a>";

如果那个“方法”对你来说太基本了,看看这个simple-php-mysql-paginationhow-to-paginate-data-with-phpbasic-pagination

【讨论】:

  • 非常感谢,工作正常:)
  • @Ahmad 不客气;)
猜你喜欢
  • 1970-01-01
  • 2014-09-30
  • 1970-01-01
  • 1970-01-01
  • 2012-08-28
  • 1970-01-01
  • 2012-12-13
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多