Guten Abend,
ich habe mir mal ein Multilevel Menu zusammen gebastelt.
Die Menüpunkte werden durch meine MYSQL Datenbank gefüllt.
Meine "menü.php" sieht wie folgt aus:
Alles anzeigen
Soweit so gut. Das Menü wird richtig ausgegeben...
Nur ein Problem gibt es dabei.
Das Menü soll vertikal sein und die Untermenüs erst einmal nicht sichtbar, sondern nur per Dropdown.
Damit dies mit meinem Dropdown Script funktioniert muss, wenn der Menüpunkt ein Untermenü hat eine "class" zu dem "<li>"-Tag hinzugefügt werden.
Somit müsste Zeile 42, des oben gezeigten Codes wie folgt in HTML aussehen, wenn der Menüpunkt einen Untermenü hat.
Mir fällt aber kein weg ein, wie ich dass dann machen könnte.
ich habe mir mal ein Multilevel Menu zusammen gebastelt.
Die Menüpunkte werden durch meine MYSQL Datenbank gefüllt.
Meine "menü.php" sieht wie folgt aus:
PHP-Quellcode: menu.php
- <?php
- // create an array to hold the references
- $refs = array();
- // create and array to hold the list
- $list = array();
- // the query to fetch the menu data
- $sql = "SELECT * FROM mainmenu ORDER BY menu_item_sorting";
- // get the results of the query
- $result = mysql_query($sql);
- // loop over the results
- while($data = @mysql_fetch_assoc($result))
- {
- // Assign by reference
- $thisref = &$refs[ $data['menu_item_id'] ];
- // add the the menu parent
- $thisref['menu_item_name'] = $data['menu_item_name'];
- $thisref['menu_item_url'] = $data['menu_item_url'];
- $thisref['menu_item_description'] = $data['menu_item_description'];
- $thisref['menu_parent_id'] = $data['menu_parent_id'];
- // if there is no parent id
- if ($data['menu_parent_id'] == 0)
- {
- $list[ $data['menu_item_id'] ] = &$thisref;
- }
- else
- {
- $refs[ $data['menu_parent_id'] ]['children'][ $data['menu_item_id'] ] = &$thisref;
- }
- }
- function create_list( $arr )
- {
- $html = "\n<ul id='main-menu'>\n";
- foreach ($arr as $key=>$output)
- {
- $html .= "<li><a href=".$output['menu_item_url'].">".$output['menu_item_name']."</a></li>\n";
- if (array_key_exists('children', $output))
- {
- $html .= "<li>";
- $html .= create_list($output['children']);
- $html .= "</li>\n";
- }
- else{}
- }
- $html .= "</ul>\n";
- return $html;
- }
- echo create_list( $list );
- ?>
Soweit so gut. Das Menü wird richtig ausgegeben...
Nur ein Problem gibt es dabei.
Das Menü soll vertikal sein und die Untermenüs erst einmal nicht sichtbar, sondern nur per Dropdown.
Damit dies mit meinem Dropdown Script funktioniert muss, wenn der Menüpunkt ein Untermenü hat eine "class" zu dem "<li>"-Tag hinzugefügt werden.
Somit müsste Zeile 42, des oben gezeigten Codes wie folgt in HTML aussehen, wenn der Menüpunkt einen Untermenü hat.
Mir fällt aber kein weg ein, wie ich dass dann machen könnte.