Я пытаюсь создать функцию для иерархической навигационной строки меню.
Я хочу иметь возможность иметь что-то вроде этого...
<ul id="navigation">
<li><a href="#">Menu Item 1</a></li>
<li><a href="#">Menu Item 2</a></li>
<ul>
<li><a href="#">Sub Menu Item 1</a></li>
<li><a href="#">Sub Menu Item 1</a></li>
</ul>
<li><a href="#">Menu Item 3</a></li>
<li><a href="#">Menu Item 4</a></li>
</ul>
Я использую эту функцию, но она работает не так, как хотелось бы. Он показывает основные родительские ссылки, но не дочерние.
function build_navbar($pid,$sub=0)
{
global $db;
$query = $db->simple_select("navbar", "*", "pid='".$pid."'", array("order_by" => "disporder"));
$menu_build = "<ul id=\"navigation\">\n";
while($menu = $db->fetch_array($query))
{
if($sub == 1)
{
$menu_build .= "<ul>\n";
$menu_build .= "<li><a href=\"#\">".$menu['title']."</a></li>\n";
$menu_build .= "</ul>\n";
}
else
{
$menu_build .= "<li><a href=\"#\">".$menu['title']."</a></li>\n";
}
build_navbar($menu['id'],1);
}
$menu_build .= "</ul>\n";
return $menu_build;
}
Возможно, кто-то может помочь мне исправить это? Спасибо.
--- Новое обновление ---
Энди Грофф, вот что выводит ваш код:
<ul id="navigation">
<li><a href="#">Home</a></li>
<ul>
<li><a href="#">Child Link</a></li>
<li><a href="#">Child 2</a></li>
</ul>
<li><a href="#">Parent</a></li>
</ul>
Однако мне нужно, чтобы он был изменен, поэтому он будет выводиться следующим образом:
<ul id="navigation">
<li><a href="#">Home</a>
<ul>
<li><a href="#">Child Link</a></li>
<li><a href="#">Child 2</a></li>
</ul>
</li>
<li><a href="#">Parent</a></li>
</ul>
Вот что он сейчас выводит, Энди:
<ul id="navigation">
</li>
<li><a href="#">Home</a>
</li>
<ul>
<li>
<a href="#">Child Link</a>
</li>
<li><a href="#">Child 2</a>
</ul>
</li>
<li><a href="#">Parent</a>
</ul>