AW: Website verticales aufklapbares Menü
Naja ich persönlich lege meine Links immer in der Datenbank ab. Das macht die Pflege von Seiten m.E. deutlich einfacher da du alle Daten immer nur an einer Stelle ändern musst. Natürlich könnte man das ganze auch als festen Code schreiben oder in einem Dateisystem speichern.
Ich verwende i.d.R. eigentlich immer Datenbanken da so die Möglichkeiten mit PHP m.E. erst voll ausgeschöpft werden können.
Habe auch grade mal eine mögliche Lösung geschrieben die findet ihr unter
http://test.mechtold.com/
CODE ab hier:
<?php
function verbindung()
{
// Hier Stehen die Verbindungsdaten
}
class navigation
{
private $name = "";
private $subname = "";
private $link = "";
private $id = "";
private $sql_hauptlevel = "Hier_steht_der_Tabellenname_der_Haupttabelle";
private $sql_sublevel_eins = "Hier_steht_der_tabellenname_der_subtabelle";
public function build_nav()
{
$mysql_connect = verbindung(); //Verbindung aufbauen
$sql_hauptlevel = $this->sql_hauptlevel;
$sql_sublevel_eins = $this->sql_sublevel_eins;
$result = mysql_query("SELECT COUNT(id) FROM `$sql_hauptlevel`");
$count_hauptlevel_tmp = mysql_fetch_row($result);
$count_hauptlevel = $count_hauptlevel_tmp[0];
for($a = 1; $a <= $count_hauptlevel; $a++)
{
$result = mysql_query("SELECT name FROM `$sql_hauptlevel` WHERE id='$a'");
$name_tmp = mysql_fetch_row($result);
$this->name = $name_tmp[0];
echo "<a href='index.php?inc=$a'>$this->name</a><br>";
if(isset($_GET['inc'])){$inc = $_GET['inc'];}
else{$inc = "";}
if($inc == $a)
{
$result = mysql_query("SELECT COUNT(id) FROM `$sql_sublevel_eins`");
$count_sublevel_eins_tmp = mysql_fetch_row($result);
$count_sublevel_eins = $count_sublevel_eins_tmp[0];
for($b = 1; $b <= $count_sublevel_eins; $b++)
{
$result = mysql_query("SELECT hauptlevel FROM `$sql_sublevel_eins` WHERE id='$b'");
$hauptlevel_tmp = mysql_fetch_row($result);
$hauptlevel = $hauptlevel_tmp[0];
if($hauptlevel == $a)
{
$result = mysql_query("SELECT name FROM `$sql_sublevel_eins` WHERE id='$b'");
$name_tmp = mysql_fetch_row($result);
$this->name = $name_tmp[0];
echo "<a href='index.php?inc=$a&subinc=$b'>$this->name</a><br>";
}
}
}
}
mysql_close($mysql_connect);
}
//Name Ausgeben
public function parse_name($inc,$subinc)
{
$sql_hauptlevel = $this->sql_hauptlevel;
$sql_sublevel_eins = $this->sql_sublevel_eins;
$mysql_connect = verbindung(); //Verbindung aufbauen
if($inc != ""){
$result = mysql_query("SELECT name FROM `$sql_hauptlevel` WHERE id='$inc'");
$name_tmp = mysql_fetch_row($result);
$this->name = $name_tmp[0];
echo "$this->name <br>";
if($subinc != ""){
$result = mysql_query("SELECT name FROM `$sql_sublevel_eins` WHERE id='$subinc'");
$name_tmp = mysql_fetch_row($result);
$this->name = $name_tmp[0];
echo "$this->name <br>";
mysql_close($mysql_connect);
}
}
}
}
// Nav Class End
// Beginn Ausgabe
echo "<table width='100%'><tr><td>";
// Navigation
$nav = new navigation();
$nav->build_nav();
echo "</td><td>";
// Inhalt
if(isset($_GET['inc'])){$inc = $_GET['inc'];}else{$inc = "";}
if(isset($_GET['subinc'])){$subinc = $_GET['subinc'];}else{$subinc = "";}
$nav->parse_name($inc,$subinc);
echo "</td></tr></table>";
?>
Der Code ist um die Verbindungsaten und Tabellennamen reduziert aber ansonsten vollständig
Bei heutigen Breitbandverbindungen merkst du nicht das die Seite neu geladen wird und außerdem wolltest du eine Lösung in PHP sehen und du musst zugeben es ist eine Lösung, wenn auch nicht die Performanteste