Flo Böhmisch: Verschachtelte Liste mit php erzeugen

Beitrag lesen

Hallo Hannes,

vielen Dank für Deine Hilfe - jetzt blick ichs und es funktioniert!

zunächst sind mal ein paar wilde Sachen passiert. Menüpunkte aus nur 1 Buchstaben, der im Arrayinhalt gar nicht vorkommt etc...

laf wohl an den fehlenden [] im ersten $sub...

$sub = Array("url" => "http://url2.1", "text" => "Text 2.1");
$sub[] = Array("url" =>...

mit den Dingern haben sich die Untermenüpunkte dann von mal zu mal aufaddiert...

$sub[] = Array("url" => "http://url2.1", "text" => "Text 2.1");
$sub[] = Array("url" =>...

Hab dann das Array $sub vor jedem Menüpunkt neu definiert:

$nav = Array();
$sub = Array();
// Erster Menüpunkt, Untermenü
$sub[] = Array("url" => "formatico_wir.php", "text" => "Wir");
$sub[] = Array("url" => "formatico_technik.php", "text" => "Technik");
$sub[] = Array("url" => "formatico_faq_download.php", "text" => "FAQ’s / Download");
$nav[] = Array("url" => "index.php", "text" => "Formatico", "sub" => $sub);

// Zweiter Menüpunkt, Untermenü
$sub = Array();
$sub[] = Array("url" => "service_printbig.php", "text" => "Text 2.1");
$sub[] = Array("url" => "service_schneidegraphiken.php", "text" => "Schneidegraphik");
$sub[] = Array("url" => "service_3dgraphiken.php", "text" => "3D Graphik");
$sub[] = Array("url" => "service_badges.php", "text" => "Badges");
$sub[] = Array("url" => "service_verarbeitung.php", "text" => "Verarbeitung");
$sub[] = Array("url" => "service_praesentationssysteme.php", "text" => "Präsentationssysteme");
$nav[] = Array("url" => "service.php", "text" => "Service", "sub" => $sub);

// Dritter Menüpunkt, Untermenü
$sub = Array();
$sub[] = Array("url" => "referenzen_mini.php", "text" => "Mini");
$sub[] = Array("url" => "referenzen_ibm.php", "text" => "IBM");
$sub[] = Array("url" => "referenzen_brauninger.php", "text" => "Bräuninger");
$nav[] = Array("url" => "referenzen.php", "text" => "Referenzen", "sub" => $sub);

// Dritter Menüpunkt, Untermenü
$sub = Array();
$sub[] = Array("url" => "anfahrt.php", "text" => "Anfahrt");
$sub[] = Array("url" => "impressum.php", "text" => "Impressum");
$nav[] = Array("url" => "kontakt.php", "text" => "Kontakt", "sub" => $sub);

$menue = "<ul>\n";
foreach ($nav as $a) {
    $menue .= ' <li><a href="' . /* htmlspecialchars (*/$a["url"]/* ) */ . '">' . $a["text"] . "</a>\n";
    if (isset($a["sub"])) {
        $menue .= " <ul>\n";
        foreach ($a["sub"] as $b) {
            $menue .= '  <li><a href="' . /* htmlspecialchars( */$b["url"]/* ) */ . '">' . $b["text"] . "</a></li>\n";
        }
        $menue .= "</ul>\n";
    }
    $menue .= "</li>\n";
}
$menue .= "</ul>\n";

so läuft es perfeckt...

Flo