2011-10-12 129 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

是的。究竟。謝謝。 –

相關問題