2016-04-22 5 views
1

Wenn Sie eine Reihe von Seitennamen wie die unten gezeigten haben:Denken Sie daran, nächste und vorherige Seiten einen Stapel mit

$array = ["home.php", "about.php", "contact.php"]; 

Der Benutzer auf „home.php“ landen würde und hat eine Schaltfläche, um zu gehen die nächste Seite, die "about.php" wäre. Die About-Seite würde dann eine vorherige Schaltfläche haben, die zu "home.php" geht und eine nächste Schaltfläche, die zu "contact.php" geht.

Ich versuche, einen Stack dafür zu verwenden, indem ich Werte schiebe und platze, aber kein Glück habe. Ich schätze es, wenn jemand Alternativen dazu vorschlägt, aber ich möchte einen Stapel verwenden.

+2

* I durch Drücken und knallen Werte einen Stapel für diesen Einsatz bin versucht, aber habe kein Glück * - Können Sie uns bitte Ihren Code zeigen? – Ben

+0

Weisen Sie das Array in der Sitzungsvariablen zu. – Fil

Antwort

0

Sie verwenden array_search, um die Position der aktuellen Seite innerhalb des Arrays zu finden. Dann überprüfen, ob es irgendwelche Nachbarn hat, wie folgt aus:

$array = ["home.php", "about.php", "contact.php"]; 

// Get the location of the current page in $array 
$currentPageKey = array_search(basename($_SERVER['SCRIPT_NAME']), $array); 

// See if there is a key prior to this. If so, get it's value 
$previousPage = array_key_exists($currentPageKey - 1, $array) 
    ? $array[$currentPageKey - 1] 
    : null; 

// See if there is a key after this. If so, get it's value 
$nextPage = array_key_exists($currentPageKey + 1, $array) 
    ? $array[$currentPageKey + 1] 
    : null; 

Dann können Sie etwas tun, wie

if (!is_null($previousPage)) { 
    echo '<a href="' . $previousPage . '">Previous</a>'; 
} 

if (!is_null($nextPage)) { 
    echo '<a href="' . $nextPage . '">Next</a>'; 
} 
+0

Live-Beispiel für dieses Setup auf der 'about.php' Seite: https://3v4l.org/BYhVa – Oldskool

0

Aktivieren Sie einfach den Array-Index der aktuellen Seite und dementsprechend prev/next Links bauen:

$array = ["home.php", "about.php", "contact.php"]; 
    $cp = basename($_SERVER['PHP_SELF']); 
    $ci = array_search($cp, $array); 
    if($ci > 0){ 
     echo '<a href="'.$array[$ci-1].'">Prev page</a>'; 
    } 
    if($ci < count($array)-1){ 
     echo '<a href="'.$array[$ci+1].'">Next page</a>'; 
    }