2010-12-02 13 views
3

Wenn ich ein Menü nav in HTML mache und PHP verwende, um es in jede Seite meiner Website einzuschließen, wie gehe ich über die Hervorhebung der aktuellen Seite, wenn alles, was ich auf der Seite einfügen kann ("menu.html");Aktuellen Menüpunkt hervorheben, wenn PHP

+0

Kann menu.html PHP-Code enthalten? –

+0

absolut. kann menu.php sein :) – benhowdle89

Antwort

6

Sie können das Menü auch in PHP schreiben, da Sie PHP bereits verwenden, um das Menü zu laden. Führen Sie einfach eine if/else-Anweisung auf den Menüpunkten aus, um zu überprüfen, ob "href" in der Verknüpfung mit der aktuellen URL von Seite und stellen Sie den Menüpunkt auf "aktiv".

1

Da Sie keine Klassen und Divs vor dem Laden der Seite ändern können, müssen Sie eine Art von Javascript/jquery/was auch immer verwenden, um den Link dynamisch zu markieren, nachdem die Seite geladen wurde. Dies sollte nicht zu schwierig sein; Sie können ein bisschen Javascript haben, das durch das Menü div (vorausgesetzt, Sie verwenden divs) für einen href Eintrag, der der aktuellen Seite entspricht, und fügen Sie dann die richtige CSS-Klasse zu diesem bestimmten Tag.

+0

habe dich, klingt gut – benhowdle89

3

In raw PHP sollte dies wie

<?php 
$currentPage = ''; // should be accessed from $_SERVER 
$cssMenu = array('home.html', 'about.html'); 
if(array_search($currentPage, $cssMenu)) $cssMenu[$currentPage] = 'active'; 
?> 

<ul id="top-menu"> 
<li class="<?= $cssMenu['home.html'] ?>">Home</li> 
<li class="<?= $cssMenu['about.html'] ?>">About</li> 
</ul> 
9

Ihre menu.html in menu.php Stellen und in dieser Datei so etwas wie

<ul class="menu"> 
    <li <?php echo ($page == 'page1') ? 'class="current"' : '';?>> <a href="#">Page1</a> </li> 
    <li <?php echo ($page == 'page2') ? 'class="current"' : '';?>> <a href="#">Page2</a></li> 
</ul> 

auf diese Weise in jeder Seite Sie sind menu.php Sie können einfach eingestellt die Variable so

<?php  
$page = 'page1'; 
include('menu.php'); 
?> 

Beachten Sie, dass dies nur ein Beispiel ist, da wir nicht wissen, wie Ihr aktueller Code aussieht

+0

Das hat gut für mich funktioniert. Vielen Dank! –

+0

Danke - das war sehr hilfreich für mich. Ein schönes, klares Beispiel. – Tony

Verwandte Themen