上一页/下一页使用PHP链接

时间:2011-10-12 04:58:56

标签: php html navigation pagination next

我想知道是否有人能够帮助我? :d

我有80个php页面(大多数只是静态html,我使用页眉和页脚的php include命令) - 我想在每个页面上有下一个/后退按钮,自动链接到上一页/下一页(第1页。 php,page2.php,page3等。)

我想要比每个学生资料页面上的每个按钮手动链接到下一个/上一个学生页面更简单。

任何人都有任何想法如何做到这一点? :)

*我是初学者编码器,没有足够的时间学习如何为这个学校项目设置数据库/ cms。

3 个答案:

答案 0 :(得分:3)

这是一个相对强大的解决方案(考虑到要求):

$pinfo = pathinfo($_SERVER["SCRIPT_FILENAME"]);
$reqpath = dirname($_SERVER["REQUEST_URI"]);

if(preg_match("/(.*?)(\d+)\.php/",  $pinfo["basename"], $matches)) {
    $fnbase = $matches[1];
    $fndir = $pinfo["dirname"];
    $current = intval($matches[2]);
    $next = $current + 1;
    $prior = $current - 1;
    $next_file = $fndir . DIRECTORY_SEPARATOR . $fnbase . $next . ".php";
    $prior_file = $fndir . DIRECTORY_SEPARATOR . $fnbase . $prior . ".php";

    if(!file_exists($next_file)) $next_file = false;
    if(!file_exists($prior_file)) $prior_file = false;


    if($prior_file) {
        $link = $reqpath . DIRECTORY_SEPARATOR . basename($prior_file);

        echo "<a href=\"$link\">Prior</a>";
    }

    if($prior_file && $next_file) {
        echo " / ";
    }

    if($next_file) {
        $link = $reqpath . DIRECTORY_SEPARATOR . basename($next_file);

        echo "<a href=\"$link\">Next</a>";
    }
}
  • 检查文件next / prior是否实际存在
  • 它支持多个枚举,例如{bla1, bla2, bla3}{foo1, foo2, foo3}

答案 1 :(得分:2)

你可以做这样可怕的事情:

// Get the current file name
$currentFile = $_SERVER["SCRIPT_NAME"];
$currentNumber = preg_replace('/\D/', '', $currentFile);
$next = $currentNumber + 1;
echo "<a href='page$next.php'>next page</a>";

类似的东西可用于查找上一页。

这可能不是一个好主意,但原因如下:

  • 页面名称仍然硬编码为page$next.php
  • 如果页面ID有任何差距,您将指导用户使用404的
  • 如果页面被重命名,这将会非常糟糕

答案 2 :(得分:0)

我认为您可以查看以下代码。这很简单。

<div>
<?php
$maxpage = 80;
if(!isset($_SESSION["currentPage"]))
    $_SESSION["currentPage"] = 0;

if($_SESSION["currentPage"] > 1)
{
?>
<a href="page<?php echo ($_SESSION["currentPage"] -1); ?>.php">Previous </a>
<?php
}
if ($_SESSION["currentPage"] < $maxpage )
{
?>
<a href="page<?php echo ($_SESSION["currentPage"] +1); ?>.php">Next </a>
<?php
}
?>
</div>

希望这会对你有所帮助。

普拉萨德。