Database driven flyout menu

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Arthur Diependaal

Arthur Diependaal

29/11/2007 20:06:00
Quote Anchor link
Ik zit met een redelijk complex probleem. Ik ben een fly-out menu aan het maken, die gedreven moet worden door de database. Hier is de code die het mogelijk moet maken:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
<?php

function displayMenu($dID)

{

    echo "<ul>";
    $q = "SELECT * from db WHERE parent_id = $dID ORDER BY id";
    $resultaat = mysql_query($q) or die(mysql_error());

    while ($row = mysql_fetch_array($resultaat)) {

            
if ($row['parent_id'] > 0) // is child

        echo "<ul><li><a href=\"topic.php?topic_id=".$row['topic_id']."&parent_id=".$row['parent_id']."\">".$row['topic_name']."</a></li></ul>";

        else // is parent

        echo "<li><a href=\"topic.php?topic_id=".$row['topic_id']."&parent_id=".$row['parent_id']."\">".$row['topic_name']."</a></li>";

    displayMenu($row['topic_id']);
 }


echo "</ul>";
}

displayMenu(0);

?>


Nu mijn probleem: Als ik een groep 'children' wil weergeven, moet daarvoor een <ul> komen te staan, en daarachter een </ul>. Dus niet voor en achter iedere child. Het zou er ideaal zo uit moeten komen te zien:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?

<ul>
<
li>Parent 1</li>
<
li>Parent 2</li>
  <
ul><li>Child 1</li>
         <
li>Child 2</li>
         <
li>Child 3</li></ul>
<
li>Parent 3</li>
  <
ul><li>Child 4</li>
         <
li>Child 5</li>
             <
ul><li>Child 6</li>
                    <
li>Child 7</li></ul>
         <
li>Child 8</li></ul>
<
li>Parent 4</li>
<
/ul> ?>


Ik hoop dat het een beetje duidelijk is. Ik zit echt met mijn handen in het haar.
Gewijzigd op 01/01/1970 01:00:00 door Arthur Diependaal
 
Er zijn nog geen reacties op dit bericht.



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.