Aktiven div Klasse zuweisen

Hallo,

ich habe eine Navigationsstruktur, die wie folgt aufgebaut ist:

[HTML]


[/HTML]

Ich möchte die Navi auslagern und muss deshalb per Script den jeweiligen aktiven Navigationspunkt auf „active“ setzen. In diesem Fall muss ich also die Klasse des div auf „active“ setzen.

Wie kann ich den per JavaScript oder php den jeweils aktiven div ansprechen? Über Hilfe würde ich mich wirklich sehr freuen :).

Danke

Hallo landpat,

Du könntest zum Beispiel mit Php die Url (teile davon) abfragen und sie dann abgleichen entspricht die URL einem Menüpunkt fügst du die active class mittels dem echo Befehl ein…
Sobald ich zuhause bin kann ich es dir nochmal detaillierter erklären…

L.G.
Jappi00

Das wäre super.

Mit basename( $_SERVER['SCRIPT_FILENAME'] ) wird mir ja der Filename ausgegeben.

Ich habe an folgendes gedacht (Pseudocode, bin echt wirklich nicht vertraut mit der Syntax von PHP :()

<div <?php if ( $_SERVER['SCRIPT_FILENAME'] ) == Inhalt von href then "class=active" else "class=inactive">
<a href="index.php" title="Home">Home</a>
</div>

Wie komm ich an den Inhalt von dem href ran?

Denke ich da richtig, oder zu kompliziert. Gibt es eine elegantere Variante?

Danke für die Hilfe :slight_smile:

Ich glaube es ist umständlich, aber ich habe eine Lösung gefunden.

<div class="menu">
    <ul>             
        <li>
            <div <?php echo (basename( $_SERVER['REQUEST_URI'] ) == 'index.php') ? ' class="active"' : ' class="inactive"'; ?>>
                <a href="index.php" title="Home">Home</a>
            </div>
             </li>
    <ul>             
        <li>
            <div <?php echo (basename( $_SERVER['REQUEST_URI'] ) == 'kontakt.php') ? ' class="active"' : ' class="inactive"'; ?>>
                <a href="kontakt.php" title="Kontakt">Kontakt</a>
            </div>
             </li>
</div>

Hallo landpat,
genau in diese Richtung wollte ich! Wenn die Seite etwas umfangreicher ist würde ich eventuell einen Array oder Objekte verwenden… Ich kann dir leider immer noch keinen Code senden da mein Netzteil heute in den Arsch gegangen ist :(:frowning: Warum verleihst du eigentlich die Inaktiv Class? Was für einen Sinn ergibt die?

Hab es mal vor längerem so gelöst:
Ist vielleicht etwas unübersichtlich, aber ist ja auch schon etwas älter
[php]

<?php $login_adress = $_SERVER['PHP_SELF']; ?> [/php] Schau mal hier, ich hatte mal genau die gleiche Frage ;): https://www.html.de/threads/class-active-beim-includieren-der-seite-anpassen.53831/#post-367481

Guck mal ob du das gebrauchen kannst.
http://www.gipspferd.de/CSS-Anleitungen/Aktuellen-Navigationspunkt-mit-PHP-ersetzen

Zu Spät.:smiley:

Wenn du nur eine Klasse einfügen willst, dann reicht das hier auch
[php]

<?php $navi = ' '; $navigation = str_replace('<a href="'.$_SERVER['REQUEST_URI'].'"','

[/php]