2011-10-12 120 views
1

我想知道如果有人真棒能帮助我吗? :D上一页/下一页使用PHP的链接

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

我想要一个更简单的方法,而不是手动链接每个学生档案页面上的每个按钮,以转到下一个/上一个学生页面。

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

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

+0

你有关于分页的知识..?如果是的话那么.. :) – Chandresh

+0

我已经玩过一些jquery/ajax分页?它是否更多地迎合普通数据?对不起,如果我误解了你^^;有没有可以向我展示的示例网站链接?我真的很感激它:) – Jess

+0

嗨,你可以参考这个链接,如果需要... [http://www.script-tutorials.com/demos/35/index.html](http://www.script- tutorials.com/demos/35/index.html)。 – Chandresh

回答

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>"; 
    } 
} 
  • 它检查该文件的下一个/实际存在
  • 它支持多个枚举像{bla1, bla2, bla3}{foo1, foo2, foo3}
现有
+0

绝对比我的解决方案好得多;) –

+0

@BrendanLong:非常感谢你!但它只是更复杂的一千倍: - \。您的观点仍然有效:它对文件名更改也很敏感。 – vstm

+0

非常感谢您发布解决方案! :)但我有点不确定如何使这项工作大声笑^^ ;;我尝试将代码粘贴到我想要链接的主体中,但是当我使用本地服务器测试它时,没有链接显示。我确定我完全错了><; – Jess

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的
  • 如果页面被重命名,这将打破可怕
+0

哦,它不是一个好主意,使用PHP的呢?如果你不介意,你会建议什么? :) – Jess

+0

@Jess - 我会建议硬编码下一个值,因为页面本身是硬编码的。如果页面在数据库中,我会说使用他们的数据库ID来找出下一页。我发布的解决方案可能会起作用,但如果(1)文件被重命名或(2)ID有任何空白,它将会中断。 –

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> 

希望这会帮助你。

Prasad。

+0

为此使用会话似乎是一个坏主意。如果他们打开两个页面,它将无法正常工作。 –

+0

是的。究竟。谢谢。 –

相关问题