• Das Erstellen neuer Accounts wurde ausgesetzt. Bei berechtigtem Interesse bitte Kontaktaufnahme über die üblichen Wege. Beste Grüße der Admin

Navigation PHP Mysql Dynamisch Baumstruktur

Lucifer2

New member
Will meine Navigation umbauen ud zwar das diese

dynamisch über eine MySQL Tabelle als Baumstruktur dargestellt wird

Die Tabelle soll folgender massen Aussehen:

ID = Eine Eindeutige Ident Nummer
Bezeichnung = Sichtbarer Name (Z.B. Menu Editor)
Verweis = die Verlinkte seite mit pfad usw (zb '../admin/menu/editor.php')
Transaktion = eine über Textfeld angabe schnellnavigation (ZB mened)
Vater = der Übergeordnete menu Punkt
Target = in welchen frame oder Seite soll es geladen werden
Level = Sicherheitslevel das nur Menus angezeigt werden für
den einen Sicherheitslevel
Beschreibung = Beschreibung die als ToolTip angezeigt wird wenn die Maus
darüber ist


Das ganze soll noch dynamisch sein heist wenn im moment folgende Struktur
ist

Home
-DVD
Neu
Liste
-Musik
MP3


und zu dem menu Musik MP3 wird ein weiterer Menu Punkt eingefügt
Liste so soll dieser beim nächsten aufklappen des Menupunktes Musik
erscheinen

ohne das ich diese seite "Manuell" (Rechte Maus Taste über Frame neu laden)
dies machen muss.

Google suche Scheidet aus habe ich schon gesucht auch hunderte von Scripten angesehen entweder sind diese über Text Datei Statisch
oder diese lassen sich nicht anpassen an meine Bedürfnisse oder es wird
gleich das Script dargestellt

Momentane PHP Version 5.3.1
Webserver: Apache/2.2.14 (Win32) DAV/2 mod_ssl/2.2.14 OpenSSL/0.9.8l mod_autoindex_color PHP/5.3.1 mod_apreq2-20090110/2.7.1 mod_perl/2.0.4 Perl/v5.10.1

schon nicht mehr weis was ich tun soll

Peter
 
wo ist jetzt das Problem? Du fängst einfach an zu programmieren :p.

Auslesen der Datenbank
zusammenbasteln einer Struktur
ausgeben

:d
hierfür bietet sich ne TemplateEngine an, ich hab genau sowas mal mit perl realisiert... das wird dir aber wahrscheinlich nicht viel nutzen.
 
Habe mal mit meinen "Menu Editor" begonnen

Auslesen der Datenbank
das geht ja noch einfach hab ich schon im Editor

Muss noch eine Edit möglichkeit ermöglichen
aber dann passt der schon

jetzt muss ich nur noch schauen wie ich dies
Aufklappbar in die Navigation integrieren kann
und dies wird schwieriger

Peter

und noch der Code dazu:

PHP:
<?PHP
SESSION_START();
REQUIRE_ONCE('../../bibliotheken/function.inc.php');
START('Navigation Editieren');
IF ($_SESSION['Level']<6)
{
	echo "Keine Berechtigung";
	exit;
}
$Connect=mysql_connect($_SESSION['Host'],$_SESSION['Name'],$_SESSION['Pass']);
IF (!EMPTY($_POST))
{
	$Menu			=$_POST['Menu'];
	$Link				=$_POST['Link'];
	$Transaktion	=$_POST['Transaktion'];
	$Vater			=$_POST['Vater'];
	$Ziel				=$_POST['Ziel'];
	$Beschreibung	=$_POST['Beschreibung'];
	$Level			=$_POST['Level'];
	
	$SQL="INSERT INTO system_menu (Bezeichnung, Verweis, Transaktion, Vater, Target, Level, Beschreibung) VALUES ('$Menu','$Link','$Transaktion','$Vater','$Ziel','$Level','$Beschreibung')";
	$Result=mysql_db_query($_SESSION['DB'],$SQL,$Connect);
}

?>
<form method="post" action="editieren.php">
	<fieldset style="width:425px;text-align:right;position:absolute; left:15%; top:15%;">
		<legend>
			Neues Menu
		</legend>
		<label for="textinput1">
			Menu Name
		</label>
		<input id=textbox type="text" name="Menu">
		<br><br>
		<label>
			Link zur Seite
		</label>
		<input id=textbox type="text" name="Link" id="textinput2">
		<br><br>
		<label>
			Transaktion
		</label>
		<input id=textbox type="text" name="Transaktion" id="textinput3">
		<br><br>
		<label>
			Übergeordneter Link
		</label>
		<select id=textbox name="Vater">
		<?PHP
		#<input id=textbox type="text" name="Vater" id="textinput4" value="Vater">
			$SQL="SELECT * FROM system_menu ORDER BY Bezeichnung";
			$Result=mysql_db_query($_SESSION['DB'],$SQL,$Connect);
			WHILE ($ROW=MYSQL_FETCH_ARRAY($Result))
			{
				$ID				=$ROW['ID'];
				$Bezeichnung	=$ROW['Bezeichnung'];
				ECHO "<option value=$ID>$Bezeichnung</option>";
			
			}
		?>
		</select>
		<br><br>
		<label>
			Ziel Fenster
		</label>
		<input id=textbox type="text" name="Ziel" id="textinput5" value="main">
		<br><br>
		<label>
			Beschreibung
		</label>
		<input id=textbox type="text" name="Beschreibung" id="textinput6" value="">
		<br>
	</fieldset>
	<fieldset style="width:450px;text-align:left;position:absolute; left:45%; top:25%;">
		<legend>
		Sicherheitslevel
		</legend>
		<input id=textbox type="radio" name="Level" id="textinput7" checked value=0>Level 0 - Nur Main Seiten Rechte<br>
		<input id=textbox type="radio" name="Level" id="textinput7" value=1>Level 1 - Ansicht Video Musik Listen<br>
		<input id=textbox type="radio" name="Level" id="textinput7" value=2>Level 2 - Bearbeitung Video Musik Listen<br>
		<input id=textbox type="radio" name="Level" id="textinput7" value=3>Level 3 - <br>
		<input id=textbox type="radio" name="Level" id="textinput7" value=4>Level 4 - Finanz Verwaltung<br>
		<input id=textbox type="radio" name="Level" id="textinput7" value=5>Level 5 - <br>
		<input id=textbox type="radio" name="Level" id="textinput7" value=6>Level 6 - Administratoren Rechte<br>
		<br>
	</fieldset>
	<fieldset style="width:200px;text-align:center;position:absolute; left:20%; top:60%;">
		<button id=BUTTON name="login" type="submit">
			Erstellen
		</button>*
		<button id=BUTTON name="reset" type="reset">
			Rücksetzen
		</button>*
	</fieldset>
</form>

	<fieldset style="width:350px;text-align:left;position:absolute; left:75%; top:10%;">
	<legend>
	Baumstruktur
	</legend>
	<?PHP
		$SQL="SELECT * FROM system_menu WHERE Vater = '0' ORDER BY Bezeichnung";
		$Result=mysql_db_query($_SESSION['DB'],$SQL,$Connect);
		WHILE ($ROW=MYSQL_FETCH_ARRAY($Result))
		{
			$ID				=$ROW['ID'];
			$Bezeichnung	=$ROW['Bezeichnung'];
			echo "$Bezeichnung<br>";
			$Pos=1;
			Untermenu('system_menu',$ID,$Connect,$_SESSION['DB'],$Pos);
			
		}
		?>
	</fieldset>






<?PHP
ende();
FUNCTION Untermenu($Tabelle,$Vater,$Connect,$DB,$Pos)
{
		$SQL="SELECT * FROM $Tabelle WHERE Vater = $Vater ORDER BY Bezeichnung";
		$Result=mysql_db_query($DB,$SQL,$Connect);
		WHILE ($ROW=MYSQL_FETCH_ARRAY($Result))
		{
			$ID				=$ROW['ID'];
			$Bezeichnung	=$ROW['Bezeichnung'];
			
			for ($I=0; $I<$Pos;$I++)
			{
				echo "..";
			}
			echo "$Bezeichnung<br>";
			Untermenu('system_menu',$ID,$Connect,$_SESSION['DB'],$Pos+1);
		}
}
?>
 

Anhänge

  • Bildschirm.JPG
    Bildschirm.JPG
    67,9 KB · Aufrufe: 9
Habe mal das Menu mittels diesen Code Integriert

PHP:
<?PHP
SESSION_START();
REQUIRE_ONCE ('../bibliotheken/function.inc.php');
START('Menu');


$Connect=mysql_connect($_SESSION['Host'],$_SESSION['Name'],$_SESSION['Pass']);

$Level=$_SESSION['Level'];
		$SQL="SELECT * FROM system_menu WHERE Vater = '0' AND Level<=$Level ORDER BY Position";
		$Result=mysql_db_query($_SESSION['DB'],$SQL,$Connect);
		WHILE ($ROW=MYSQL_FETCH_ARRAY($Result))
		{
			$ID				=$ROW['ID'];
			$Bezeichnung	=$ROW['Bezeichnung'];
			$Link			=$ROW['Verweis'];
			$Target			=$ROW['Target'];
			$Beschreibung	=$ROW['Beschreibung'];
			IF ($Link=="")
			{
				ECHO "<a>$Bezeichnung</a><br>";
			}
			ELSE
			{
			?>
			<a href="<?PHP echo $Link ?>" target="<?PHP echo $Target ?>" onmouseover="Tip('<?PHP echo $Beschreibung ?>')" onmouseout="UnTip()"><?PHP echo $Bezeichnung ?></a><br>
			<?PHP
			}
			$Pos=1;
			Untermenu('system_menu',$ID,$Connect,$_SESSION['DB'],$Pos,$_SESSION['Level']);
			
		}


?>
<p>
<p>

<a href=menu.php>Aktualisieren</a>

<?PHP
ENDE();


FUNCTION Untermenu($Tabelle,$Vater,$Connect,$DB,$Pos,$Level)
{
		$SQL="SELECT * FROM $Tabelle WHERE Vater = $Vater AND Level<=$Level ORDER BY Position";
		$Result=mysql_db_query($DB,$SQL,$Connect);
		WHILE ($ROW=MYSQL_FETCH_ARRAY($Result))
		{
			$ID				=$ROW['ID'];
			$Bezeichnung	=$ROW['Bezeichnung'];
			$Link			=$ROW['Verweis'];
			$Target			=$ROW['Target'];
			$Beschreibung	=$ROW['Beschreibung'];
			for ($I=0; $I<$Pos;$I++)
			{
			?>
				&nbsp
			<?PHP
			}
			IF ($Link=="")
			{
				ECHO "<a>$Bezeichnung</a><br>";
			}
			ELSE
			{
			?>
			<a href="<?PHP echo $Link ?>" target="<?PHP echo $Target ?>" onmouseover="Tip('<?PHP echo $Beschreibung ?>')" onmouseout="UnTip()"><?PHP echo $Bezeichnung ?></a><br>
			<?PHP
			}
			Untermenu('system_menu',$ID,$Connect,$_SESSION['DB'],$Pos+1,$Level);
		}
}
?>

Sieht jetzt natürlich unübersichtlich aus wie man an der angehängten grafik
sieht.

http://forum.jswelt.de/attachment.php?attachmentid=3531&stc=1&d=1264242761

Wie gelingt es mir jetzt dieses Menu in dieser Form einzeln aufklappen
und zu klappen zu lassen???

Ich weiß irgendwo habe ich in einen Script oder irgendwo im netz schon
die Antwort aber nicht mehr die Nerven in diesen Jahr dazu

Peter
 

Anhänge

  • menu.JPG
    menu.JPG
    25,2 KB · Aufrufe: 6
Zurück
Oben