我一直在用递归搞乱几个小时,只是不能正确地做对!递归菜单问题
我希望我的菜单结构为:
<ul>
<li> menu 1 <ul>
<li> menu 1.1 <ul>
<li> menu 1.1.1 </li>
</ul>
</ul>
<li> menu 2 </li>
<li> menu 3 <ul>
<li> menu 3.1 </li>
</ul>
<li> menu 4 </li>
</ul>
</li>
,但我只是无法得到它的权利。
print '<ul>';
display_children(0, 0);
function display_children($parent, $level) {
// retrieve all children of $parent
$result = mysql_query('SELECT * FROM kategori WHERE parent="'.$parent.'";');
while ($row = mysql_fetch_array($result)) {
if($row['parent']!=0)
print '<ul>';
print '<li>';
// indent and display the title of this child
echo $row['navn']."\n";
// call this function again to display this
// child's children
display_children($row['id'], $level+1);
}
print '</li>';
print '</ul>';
,因为它是现在,它打印正确的结构,但poops出missplaced <ul>
和<il>
一个crapton我的顶级菜单项已经0父(以表明他们是绝对顶部)其子女的父母身份为父母。
我试着检查函数的当前运行(可以说我们在菜单1.1.1)有父母0,这令我惊讶,是真实的,因为我会认为当前运行的会有父母“菜单1.1”而不是“菜单1”
任何一个能够帮助我在这里?我一直在盯着waaay的那段该死的代码,如果你能快速修复这个代码片段,以便插入UL和IL,我将非常感激!
由于提前,拉斯穆斯
正是我想到的,谢谢! – Rasmus 2011-03-08 13:14:26