Ein Menu, das bei moseover kommt...

FuNthe1

Grünschnabel
Hi,
ich hab mal ne seite gesehen, wo das menu komisch runter kommt:

z.B.:
Baum Apfel Birne Affe

klick:

Baum Apfel Birne Affe
Kivi apfel ....

Ich hoffe ihr habt gecheckt wie ich es meine.

mfg.
FuN
 
An anderer Stelle gab es hier mal ein Tutorial zum Themabaum-Menue. Meinst Du so etwas.

anbei das Skript

PHP:
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
 
 <html>
 
 <head>
 
 <title>Der Versuches eines Men&uuml;systems</title>
 
 <link rel="stylesheet" type="text/css" href="../stil.ccs" />
 
 </head>
 
 <body>
 
 <?php
 
 $link = mysql_pconnect("localhost","wwwrun"); 
 
 $err  = mysql_select_db("menusys",$link); # das sollte klar sein wir rufen unsere db an. 
 
 
 
 # und hier kommt der code kurz aber schwer zu verstehen ... 
 
 function baum($vater,$lpos) #vater welches menu wird gezeigt ; in lpos wird meine liste aufgebaut für den nächsten klick 
 
 { 
 
 	global $link;  # Der Link zur DB durch global auch in der Funktion bekannt. 
 
 	global $wahl;  # hier sind als Array die ids drin die aufgeklappt sind (kommt aus der var pos) 
 
 	static $ebene = 0; # mit static erstelle ich eine Variable, die beim erneuten 
 
 					    # Aufruf der Funktion den Wert aus der Vorgängerfunktion behält. 
 
 					    # Die ist wichtig für die Rekursion. Der Startwert ist 0 und der 
 
 					    # wird hochgezählt beim Neuaufruf. Wenn ich also im Menu bei Apfel bin, 
 
 					    # ist der Wert bei 1. 
 
 
 
 	$erg[$ebene] = mysql_query("SELECT * FROM `menu` WHERE `vater` = '$vater'",$link); 
 
 	$menge = mysql_num_rows($erg[$ebene]); 
 
 	# Das ist auch noch klar. Lese das aktuelle Menu aus der Datenbank aus und starte eine Schleife ... 
 
 	for ($lo=0;$lo<$menge;$lo++) { 
 
 		$row = mysql_fetch_row($erg[$ebene]);	# Den Menu Eintrag auslesen, in $row[1] 
 
 											    # ist ja der menueintrag als text .. 
 
 		$menu = "<a href=\"baum.php3?pos=".$lpos."|".$row[0]."\">".$row[1]."</a><br>"; 
 
 		# Hier bastel ich den Link zusammen. Am schwersten zu verstehen ist wohl 
 
 		# pos=$lpos|$row[0], ich werde noch näher darauf eingehen. 
 
 
 
 		if ($ebene > 0) {	# Hier rücke ich einfach nur ein, je tiefer ich im Menu(Rekursion) 
 
 						    # bin, umso mehr Leerzeichen vorne dran 
 
 			echo str_repeat("&nbsp;",$ebene); 
 
 		}
 
 		 echo $menu; 
 
 		if ($row[0] == $wahl[$ebene+1]) { # Hier folgt der Aufruf der Funktion (ab in die Rekursion) 
 
 			$ebene++; # ein Level hoch 
 
 			baum($row[0],$lpos."|$row[0]"); 
 
 			$ebene--; # und wieder ein Level runter 
 
 		} 
 
 	} 
 
 }
 
 $wahl = explode("|",$_GET['pos']); # aus meiner pos mache ich ein array wahl - wahl[1] hat inhalt 1 
 
 baum(0,""); # starte die Funktion, liste alles auf was als vater 0 hat
 
 if (sizeof($wahl) > 1) { # nur wenn wahl vorhanden ist 
 
 	$id = $wahl[sizeof($wahl)-1]; # den letzten Eintrag von wahl ermitteln 
 
 	# was anzuzeigen ist, aus db holen 
 
 	$erg = mysql_query("SELECT `href` FROM `menu` WHERE `mid`='$id'",$link) or die(mysql_error()); 
 
 	$row = mysql_fetch_row($erg); 
 
 	if ($row[0] != "") { # wenn ein Eintrag vorhanden ist, per javascript aufrufen 
 
 ?> 
 
 		<script language="JavaScript"> 
 
 		parent.haupt.location.href="<? echo $row[0]; ?>"; 
 
 		</script> 
 
 <? } 
 
 }
 
 ?>
 
 </body>
 
 </html>
 
Zurück