我有自定义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页。
答案 0 :(得分:0)
这完全取决于您的网页存储的位置和方式!如果您使用数据库执行此操作,则需要检查$ pagenum(我们在任何地方看不到定义)是否具有上一页/下一页...并且基于您绘制+/- 5页锚点!最好做一些循环!
另一方面,如果您没有使用任何数据库,只想根据?pagenum =(数字)显示一些内容,这就是您在这里所做的事情!一旦用户进入新页面,您将需要通过$ _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-pagination,how-to-paginate-data-with-php,basic-pagination