Vitalphp
Новичок
Навигация в многоуровневом меню - вопрос!
Приветствую всех форумчан!
Прошу помочь мне в моем вопросе.
Тема о многоуровневых меню уже не раз обсуждалась, но вопрос по самой навигации -перемещении по уровням меню!
Вот структура таблицы для меню:
-----------------------------
id | parent | level | title
-----------------------------
Вот код реализации рекурсии для раскрытия дерева меню целиком со всеми подкатегориями:
Результат примерно такой (для примера):
Категория 1
-Подкатегория 1
-Подкатегория 2
--Подподкатегория 1
--Подподкатегория 2
-Подкатегория 3
Категория 2
-Подкатегория 1
--Подподкатегория 1
--Подподкатегория 2
-Подкатегория 2
Категория 3
...
...
Вопрос: как сделать так, чтобы меню работало так, как подобает, т.е. при нажатии например на
Категория 2 открывалась Подкатегория 1, при нажатии на нее - Подподкатегория 1 и Подподкатегория 2 соответственно? Может чего-то не учел в таблице базы, или может достаточно уже только php средств.
Классика короче нужна, что называется. Интересует именно на PHP, так как javascript не совсем то.. при переходах на разделы с javascript - все эти деревья благополучно закрываются (обновляется файл php)
Буду рад и javascript - решениям.
Спасибо большое!
Приветствую всех форумчан!
Прошу помочь мне в моем вопросе.
Тема о многоуровневых меню уже не раз обсуждалась, но вопрос по самой навигации -перемещении по уровням меню!
Вот структура таблицы для меню:
-----------------------------
id | parent | level | title
-----------------------------
Вот код реализации рекурсии для раскрытия дерева меню целиком со всеми подкатегориями:
PHP:
<?
$query = mysql_query("select * from menu order by id asc", $conn);
while ($r = mysql_fetch_array($query)) {
if ($r[parent] == 0) {
echo "<div>".$r[title]."</div>";
in($r[id],$r[parent]);
}
}
function in($id,$pid) {
$query = mysql_query("select * from menu where parent=".$id."");
while ($r = mysql_fetch_array($query)) {
for ($i=0; $i<$r[level]; $i++){
$margin+=15;
}
echo "<div id='$r[id]' style='margin-left:".$margin."px'>
<a href=\"phpmenu.php?id=$r[id]\">".$r[title]."</a>
</div>";
$margin=0;
in($r[id],$r[parent]);
}
}
?>
Категория 1
-Подкатегория 1
-Подкатегория 2
--Подподкатегория 1
--Подподкатегория 2
-Подкатегория 3
Категория 2
-Подкатегория 1
--Подподкатегория 1
--Подподкатегория 2
-Подкатегория 2
Категория 3
...
...
Вопрос: как сделать так, чтобы меню работало так, как подобает, т.е. при нажатии например на
Категория 2 открывалась Подкатегория 1, при нажатии на нее - Подподкатегория 1 и Подподкатегория 2 соответственно? Может чего-то не учел в таблице базы, или может достаточно уже только php средств.
Классика короче нужна, что называется. Интересует именно на PHP, так как javascript не совсем то.. при переходах на разделы с javascript - все эти деревья благополучно закрываются (обновляется файл php)
Буду рад и javascript - решениям.
Спасибо большое!