Dynamisches Menü?

Hallo HaBo,

Ich brauche für eine Webseite ein Menü welches dynamisch sein soll, das heißt die Menüeinträge sollen aus einer Datenbank kommen.
Submenüs sollten auch drinnen sein (mehrere Ebenen). Ich hab sowas schon so oft gesehn (weis aber leider nich obs dynamisch war) das müsste es doch geben. Hat jemand ein fertiges Script dazu? JS oder PHP ist egal.
Danke Lük :)
 
OT: Ich persönlich hasse derartige Webseiten, da a) sie JS brauchen und b) man die Maus benutzen muss. Daher solltest du darauf achten, dass du bei fehlendem JS auch eine normale Menüstruktur anbietest,
 
Ich sage ja es würde auch PHP gehen...
Und b) vernachlässige ich mal ;) welche Lösung wär denn deiner Meinung nach weniger mausintensiv?
 
Bitte erst die Frage lesen UND verstehen bevor man irgendwelchen unsinnigen Trash verfasst.

Lük ich gebe dir mal ein paar Anregungen:
-Du hast ne SQL Tabelle die meinetwegen Menu heisst. Spalten wären bspw.:
  • ID => Eindeutige ID
  • UpperID => ID des übergeordneten Menüpunkts. Gleich null bedeutet, dass dieser Punkt zur ersten Ebene gehört
  • Name => Name der als Linktext erscheint
  • Description => Beschreibung

Im PHP Skript gibst du erstmal alle Punkte nacheinander aus, bei denen UpperID null ist.
Wenn jetzt ein Menüpunkt angeklickt wird, wird die ID per GET übermittelt.
Jetzt schaust du nach, ob es irgendwelche Einträge gibt, die diese ID als UpperID haben. Die gibst du aus. Das muss man in einer Schleife machen, bis man quasi unseren "logischen" Baum vom Blatt bis zur Wurzel abgearbeitet haben.
 
Menüeintrage aus der Datenbank holen und anzeigen geht selbstverständlich ohne JS, vielleicht hätte ich erwähnen sollen, dass ich mich nur auf die "Submenus" bezog. ;)
Diese ausklappenden Submenus gehen soweit ich weiß nicht oder JS oder schlimmeres, da man auf Mausbewegungen des Nutzers reagieren muss, daher mein Kommentar. Wie gesagt, ich habe nichts gegen Seiten die man auch noch normal verwenden kann, aber sobald das ausartet und man die Seiten nicht ohne navigieren kann wird mir übel.
 
Jip soweit hatte ich das auch schon gemacht.
Nur es soll halt auch Untermenüs von Untermenüs sozusagen geben. Deine Version wäre nur für ein unterebiges Menü ausgelegt.
 
Du könntest zu jedem Eintrag den Namen einer Untermenütabelle oder NULL in ein Feld schreiben und diese beim Verarbeiten des Eintrags (rekursiv) darstellen lassen. Anstatt der neuen Tabelle kannst du die anderen Einträge auch durch ein extra Feld in der selben Tabelle identifizieren lassen.
 
Man benötigt kein JS dafür, das funktioniert auch super mit dem CSS Event ":hover"

Im Prinzip musst du mit z.B. PHP eine Liste ausgeben (HTML-Elemente: ul + li) und mit CSS die Formatierungen.

Als Beispiel guck dir mal folgendes an:

Code:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" dir="ltr" lang="de" xml:lang="de">
	<head>
		<title>CSS Hover Menü</title>
		
		<style type="text/css">
			.menu li {
				border: solid 1px #000;
				width: 200px;
				float: left;
				list-style: none;
				padding: 3px;
			}
			
			.menu li:hover {
				border: solid 1px #f00;
			}
			
			.menu .caption {
				display: block;
			}
			
			.child {
				display: none;
			}
			
			.child li {
				width: 150px;
			}
			
			.menu li:hover .child {
				display: block;
			}
		</style>
	</head>
	
	<body>
		<ul class="menu">
			<li>
				Menu1
				<ul class="child">
					<li>Element 1</li>
					<li>Element 2</li>
					<li>Element n</li>
				</ul>
			</li>
			
			<li>
				Menu2
				<ul class="child">
					<li>Element 21</li>
					<li>Element 22</li>
					<li>Element 2n</li>
				</ul>
			</li>
		</ul>
	</body>
 
@Lesco:
Lies doch mal meinen Post... und denk darüber nach. Du wirst feststellen, dass ich genau jenes bereits beschrieben habe.
 
@csde_rats:
Lies doch mal Lüks Antwort... und denk darüber nach. Du wirst feststellen, dass ihm nicht so ganz klar war, dass man mit dieser Methode beliebig tiefe Menübäume erstellen kann. Daher habe ich das ganze nochmal zu beschreiben versucht.
 
Original von Mani
Original von Lesco
Menüeintrage aus der Datenbank holen und anzeigen geht selbstverständlich ohne PHP

ist mir neu :)

Oh, meinte natürlich JS, danke für die Korrektur. Hab's im obigen Beitrag editiert. (Ich hätte mich natürlich auch rausreden können und sagen, dass man auch Ruby oder andere serverseitige Sprachen+Frameworks verwenden könnte).
 
Zurück
Oben