doppelt aufklappbares Menü mit php

  • #1
N

nvme

Mitglied
Themenersteller
Dabei seit
10.05.2010
Beiträge
6
Reaktionspunkte
0
Hallo liebe Community,
Ich habe ein kleines PHP-Menü für meine Website nach der Vorlage aus diesem Forumpost gebastelt:

https://www.wintotal-forum.de/index.php/topic,71477.0.html

Jetzt würde mich interessieren, ob es möglich ist auch noch eine zweite aufklappbare Menüzeile hinzuzufügen.
also einfach erklärt :

Menüpunkt(anfangs offen)
Menüunterpunkt1(durch anklicken öffenbar)
Menüunter-unterpunkt(erst nach anklicken von menüunterpunkt1 anklickbar)

Habe es ein wenig probiert aber bin recht kläglich gescheitert, also wäre super wenn mir da jemand helfen könnte.

Liebe Grüße,

Lukas
 
  • #2
Hallo Lukas,

würde es reichen wenn das 2. Untermenü mit Javascript aus- und eingeblendet werden würde? Das wäre die einfachste Lösung, sonst kann man anfangen die Funktion neu zu verschachteln.

wie auch immer, ist nur ein Lösungsansatz ;)
Mfg.

edit: hier mal die angepasste Lösung mit PHP:
Code:
<?php

function admmenu() {
  $m1 = $m2 = $m3 = ;
  if(isset($_REQUEST['m'])) {
	  switch ($_REQUEST['m']) {
		 case 1:
             $m1 = <a href='.basename(__FILE__).?m=1&u=1'>Unter Menü 1</a>;
             if ($_REQUEST[u] == 1) { 
                $m1 .= <br />Unter Unter Menü; 
             }
			 break;
       
		 case 2:
             $m2 = <a href='.basename(__FILE__).?m=2&u=1'>Unter Menü 2</a>; 
             if ($_REQUEST[u] == 1) { 
               $m2 .= <br />Unter Unter Menü; 
             }
			 break;
       
		 case 3: 
             $m3 = <a href='.basename(__FILE__).?m=3&u=1'>Unter Menü 3</a>; 
             if ($_REQUEST[u] == 1) { 
               $m3 .= <br />Unter Unter Menü; 
             }
			 break;
		
		 default:
             $m1 = $m2 = $m3 = ;
		
	  }
  }
  return <ul><li><a href='.basename(__FILE__).?m=1'>Menü 1</a></li>.
      $m1.
      <li><a href='.basename(__FILE__).?m=2'>Menü 2</a></li>.
	    $m2.
	    <li><a href='.basename(__FILE__).?m=3'>Menü 3</a></li>.
      $m3</ul>;
}


?>

Erklärung: Über den 2. Parameter u wird das Unter Unter Menü aufgerufen. Anstelle von Unter Unter Menü müssen dann Deine Links dafür gesetzt werden. Soll gleich das 1. Menü geöffnet sein, baruchst Du nur die Url mit dem Parameter m=1 aufrufen.

[PCDConny::Link auf Wunsch des Autors entfernt]
 
  • #3
ja danke auf jedenfall schonmal für die schnelle antwort.

Das ist auf jedenfall schonmal ne super lösung.
Ich hatte nur eigentlich gehofft, ich wär einfach nur zu blöd und man könne das, mit leichten veränderungen in dem vorhandenen code auch mit purem php lösen,weil
javascript ja immer so eine sache ist, falls der user das dann deaktiviert hat etc.

Vieleicht sollte ich dann doch lieber einfach mit 2 menü-dateien arbeiten, um so das 2. aufklappen zu inszenieren.
wär zwar nicht so wunderschön,aber würde ja sicherlich recht einfach funktionieren.
 
  • #4
sieh Dir mal meinen Beispielcode an, das ist ohne Javascript und beachte den DEMO Link darunter ;)
 
  • #5
haha, hattest du nich geschrieben da wär js dabei ?
ich verstehe du meinst man bräuchte js um das 2. untermenü wieder einklappen zukönnen ?
naja das is glaub ich gar nich mal so schlimm,wenn man das nich einklappen kann.

also dann danke ich dir für die lösung und werd das gleich mal ausprobieren:)
 
  • #6
Im ersten Teil meiner Antwort (von heute vormittag) hatte ich vorgeschlagen JS zu verwenden.

Jetzt hatte ich noch etwas Zeit bis zum nächsten Termin und habe die verlinkte Lösung in PHP (ohne Javascript) umgesetzt. :)

ein einklappen ist mit relativ wenig Aufwand mit Javascript möglich, wenn es wirklich erforderlich ist
ansonsten wird ja automatisch eingeklappt wenn ein anderer Menüpunkt angeklickt wird

na dann viel Erfolg
 
  • #7
ja genau.. also vielen vielen dank, dass du dich mit meinem newcomer-problem auseinandergesetzt hast;)
 
  • #8
kein Problem, dafür ist ein Forum da, dann viel Spaß noch hier
 
  • #9
soo ich bins nochmal. hat bis jetzt alles bestens geklappt mit meinem menü.
Jetzt hab ich aber nochmal(hoffentlich nur) eine kleine frage:

ich habe vor, das menü in einem linken frame auf meiner seite anzeigen zulassen. dabei soll, wenn ich das menü aufklappe im rechten frame schon eine seite angezeigt werden. ergo ich muss es schaffen, dass diese zeile :

Code:
return <ul><li><a href='.basename(__FILE__).?m=1'>Menü 1</a></li>.
      $m1.

gleichzeitig nicht nur das menü 1 aufklappt sondern auch einen link erzeugt. ist das möglich ?
 
  • #10
Hallo nochmal,

ja die Frames, in fast jedem Fall eine unvorteilhafte Technik.

Es gibt die einfache Lösung mit Javascript ein 2. Verweisziel zu definieren. Das hat aber die Nachteile Javascript und das Suchmaschinen Probleme haben die Links zu indizieren. Dafür sind Beispiele für eine Implementierung im Internet reichlich vorhanden:

http://www.google.de/search?q=ein+link+zwei+frames

Alternativ muss das gesamte Frameset neu (angepasst) geladen werden, was aber eigentlich dem Grundgedanken und Vorteilen von Frames widerspricht. Dann kann man gleich eine serverseitige Scriptsprache für die gesamte Seite benutzen.

Eines noch als Ergänzung, solltest Du Javascript verwenden, dann achte darauf welches Verweisziel wichtiger für Suchmaschinen ist. Eine Lösung wie:
Code:
<a href=javascript:LinksAusfuehrenFunktion()>Link</a>
ist in jedem Fall ungünstig, dann besser so:
Code:
<a href=content.html target=contentFrame onclick=NavigationFunktion();>Link</a>

na dann, bis demnächst ;)
 
  • #11
nagut.. ich versuche ja immernoch um javascript drumherum zukommen.
dann werde ich das mit den zweifachen links wohl sein lassen.. das wäre eh nur ein bisschen das sahnehäupchen.
dennoch vielen dank für die lehrstunden ;)
 
Thema:

doppelt aufklappbares Menü mit php

ANGEBOTE & SPONSOREN

Statistik des Forums

Themen
113.838
Beiträge
707.959
Mitglieder
51.491
Neuestes Mitglied
haraldmuc
Oben