Database driven flyout menu
Arthur Diependaal
29/11/2007 20:06:00Ik 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:
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:
Ik hoop dat het een beetje duidelijk is. Ik zit echt met mijn handen in het haar.
Code (php)
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
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);
?>
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)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
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> ?>
<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.