Sie befinden sich hier im Forenarchiv von phpforum.de wenn Sie direkt ins Forum möchten, klicken Sie bitte hier. Zur Startseite kommen Sie hier.

Navigationsmenü mit 3 Ebenen

Hallo Forum

Ich bin nicht gerade erfahren was PHP angeht, und deshalb benötige ich mal Eure Hilfe.
Es geht konkret um ein dynamisches Navigationsmenü mit 3 Ebenen. Zwei Ebenen habe ich hinbekommen, nur die dritte will seit Tagen nicht funktionieren. Irgendwas will immer nicht.
Hier ist das 2 Ebenen Script.

Code:                   In Zwischenablage kopieren (nur IE)
1">

Ein Array für die dritte Dimension habe ich schon einmal für "Audio" erstellt. In der letzen Schleife werden die Links für die 2 te Ebene erstellt. Für Audio wird statt dem Pfad Array ausgegeben (was ja auch logisch ist).

Hat jemand von Euch vielleicht ein Tipp, wo ich am besten ansetzen kann. Ich habe schon etliches versucht, nur der Erfolg blieb leider aus.
Mit is_array und einer Schleife wird es bestimmt hinhauen, nur wie?

Danke im Voraus
jay-ar
Hier gehts zum Orginal Eintrag "Navigationsmenü mit 3 Ebenen" im Forum

Antworten

if (is_array($wert)) {
foreach(...
} else {
echo $wert...
}


2.

Hallo Foggy
Zitat:
if (is_array($wert)) {
foreach(...
} else {
echo $wert...
}
Das ist mir schon bewusst, jedoch komme ich damit alleine nicht viel weiter.
Ich habe das ganze mal etwas erweitert, sodass der korrekte Link jetzt hinter Audio erscheint.
Code:                   In Zwischenablage kopieren (nur IE)
2">

Welches Problem jetzt auftritt ist, dass beim Anklicken von Audio die Navigation vollständig in die Oberste Ansicht zurückspringt und nicht in zweiter Ebene verbleibt.

Irgendwie scheint dies nicht richtig zu funktionieren. Ich habe auch etwas gelesen dass es mit einer Funktion und recursiver Abfrage wenn is_array gehen sollte. Da habe ich aber nicht durchgeblickt. (noch nicht viel Erfahrung in PHP)
Hat vielleicht einer einen weiteren Tipp, der mir weiterhelfen könnte.

Danke im Voraus

jay-ar


3.

also, ich geb dir nen einfacheren tipp


Struktur Tabelle Navigation in Datenbank:
Code:                   In Zwischenablage kopieren (nur IE)
3">

Die Datensätze mit der parentid == 0 sind Hauptebenen.
Alle andere Datensätze deren parentid nicht 0 ist sind Unterebenen, und zwar dort wo die parentid == id der Oberebene ist.
Das kannst du beliebig tief machen...

Rekursive Auflistung heisst das Zauberwort...

Hier Beispielfunktionen:

Code:                   In Zwischenablage kopieren (nur IE)
4">

Ich hoffe es geht... hab es nicht getestet... aber hey ich hab ja sonst nichts zu tun :P

Achja... und mit den Link... die kannste auch noch in die Datenbank packen... spalte: link und dann mit <a>-Tag erweitern ;);)


4.

man kann da sogar noch einen schritt weitergehen und nach nested sets suchen...ist vielleicht einmalig vom aufwand was höher, aber die erweiterbarkeit ist besser und das ganze ist variabler...natürlich alles in der db...

und wenn man einmal so eine struktur hat, ist sowas optimal für die hauseigene code-kramkiste (für später...man kann es immer wieder verwenden :D )


5.

Hallo alFie

Respekt für die detaillierte Ausführung, Ich werde mich Morgen gleich einmal dran machen, um es zu testen.

Danke, dass Du sonst nichts zu tun hattest. ;)

jay-ar


6.

ja sicher... hab die letzten 3 tage lange genug mit dem scheiss verbracht...

hab das grade sogar in meine script snippets hinzugefügt! =)

Achja... berichte mit bitte, ob es funktioniert hat oder nicht... wie gesagt... das läuft alles über eine datenbank und ist soweit erweiter und vertiefbar wie (im normalfall) mysql es zulässt.

LG und schönen Abend noch


Hier gehts zum Orginal Eintrag "Navigationsmenü mit 3 Ebenen" im Forum
 
phpforum.de | Impressum | Handy Bundles