Wie setze ich die aktuelle Seite "aktiv" in PHP?

8

Hallo Ich habe ein Menü auf meiner Seite auf jeder Seite, ich möchte es in eine eigene menu.php-Datei einfügen, aber ich bin mir nicht sicher, wie ich class="active" festlegen soll Egal welche Seite ich bin. Hier ist mein Code: bitte hilf mir

menu.php:

%Vor%     
jenny 12.04.2013, 05:30
quelle

12 Antworten

9

Es wäre einfacher, wenn Sie ein Array von Seiten in Ihrem Skript erstellen und es zusammen mit der gerade aktiven Seite an die Ansichtsdatei übergeben würden:

%Vor%

Mit einer Template Engine wie Smarty würde deine menu.php noch netter aussehen:

%Vor%     
package 12.04.2013, 05:43
quelle
11

Erstelle eine Variable in jeder deiner PHP-Dateien wie:

%Vor%

dann überprüfen Sie diese Variable in Ihrer HTML-Seite wie folgt

%Vor%     
chandresh_cool 12.04.2013 05:34
quelle
9

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%     
iraqi_love4ever 14.11.2014 20:44
quelle
3

Setzen Sie den folgenden Code in menu.php und alles wird erledigt.

%Vor%

Verwenden Sie die oben genannten, um den aktuellen Seitennamen zu erhalten, und setzen Sie diesen in Ihr Menü

%Vor%

Dabei ist active der Name der Klasse, die den Menüpunkt

hervorhebt     
asprin 12.04.2013 05:37
quelle
1

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

%Vor%

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%     
Mp de la Vega 12.04.2013 05:34
quelle
1

Ich habe es mit PHP auf diese Weise gemacht,

%Vor%

Und dann diese Funktion aufzurufen

%Vor%

und die Ausgabe wird so sein

%Vor%     
Angela Taylor 18.12.2013 20:12
quelle
0

Senden Sie den Seitennamen in der Abfragezeichenfolge und überprüfen Sie ihn auf jeder Seite, indem Sie die Variable abrufen.

    
Ajeet Singh 12.04.2013 05:38
quelle
0

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%     
CodyBugstein 10.03.2014 06:34
quelle
0

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:

%Vor%

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.

    
Alex 07.04.2014 14:30
quelle
0

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%     
jimmy 19.10.2014 16:07
quelle
0

Sie können

verwenden %Vor%     
iraqi_love4ever 14.11.2014 20:26
quelle
0

Das hat für mich funktioniert:

%Vor%     
mrmut 02.04.2018 19:46
quelle

Tags und Links