Erstelle eine Variable in jeder deiner PHP-Dateien wie:
%Vor%dann überprüfen Sie diese Variable in Ihrer HTML-Seite wie folgt
%Vor%Diese Methode ruft die aktuelle Seite mit php ab, die ein Wort in diesem Fall als aktiv übergeben und in den Klassenparameter einfügen, um die Seite aktiv zu setzen.
%Vor%Es gibt zwei Dinge, die Sie tun können.
Zuerst können Sie den aktuellen Dateinamen der angeforderten PHP-Datei mit $_SERVER['PHP_SELF']
oder $_SERVER['REQUEST_URI']
oder einem anderen $ _ SERVER global Variablen, die Sie verwenden können, um Ihre aktuelle Seite zu lesen und sie mit der Link-URL zu vergleichen, etwa so
der zweite ist, eine Variable zu erstellen, die Sie global lesen können, die den aktuellen Namen der aktuellen Seite wie
speichern würde %Vor%Ich habe es mit PHP auf diese Weise gemacht,
%Vor%Und dann diese Funktion aufzurufen
%Vor%und die Ausgabe wird so sein
%Vor%Senden Sie den Seitennamen in der Abfragezeichenfolge und überprüfen Sie ihn auf jeder Seite, indem Sie die Variable abrufen.
Simplere Lösung:
Entleihen Sie den Code von asprin
oben;
Erstellen Sie eine neue Datei menu.php
, wo Sie die einzige Kopie des Menüs speichern werden. In dieser Datei erstellen Sie eine Funktion addMenu($pageName)
, die einen Parameter als Seitenname verwendet und nach dem Hinzufügen des aktuellen Tags eine Zeichenfolge aus dem Menü zurückgibt.
In Ihrem HTML-Code würden Sie include(menu.php)
und dann die Funktion addMenu
mit dem aktuellen Seitennamen aufrufen. Ihr Code sieht dann so aus:
menu.php
%Vor%Und in Ihrem HTML sagen Sie das:
%Vor%Ich habe das mit jQuery / javascript gelöst, indem ich bei jedem Laden meiner Seite den folgenden Code ausgeführt habe:
%Vor% Diese Implementierung geht davon aus, dass Ihr Menü die 'NavMenu' ID hat und verwendet http://hostname/scriptname.php
href Attribute wie folgt:
Lesen Sie die Javascript-Kommentare, um zu sehen, was vor sich geht. Wenn Sie ein anderes href-Layout bevorzugen (wie in Ihrem ursprünglichen Beispiel), müssen Sie mit der CurrentUrl-Variable ein wenig spielen, um dasselbe Layout wie Ihre href-Attribute zu verwenden.
Für mich war das die einfachste Lösung, da ich bereits Websites mit einem großen Menü und vielen Seiten hatte und nicht alle Seiten ändern wollte. Dies erlaubt mir, einen Stück JavaScript-Code in die Header-Datei (die bereits eine zentrale Datei war) einzuwerfen, die das Problem für alle vorhandenen Seiten löst.
Ein bisschen spät am Ball, aber ich musste das selbst lösen und endete mit dieser Javascript-Methode mit einer kleinen Änderung. Dies hat den Vorteil, dass der aktuelle Code nicht viele Änderungen erfordert, einfach das Skript ausführen und voila.
%Vor%