[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: вертикальное выпадающее меню
WisesT
Добрый день.

Есть таблица в БД
id title title_url parent
1 соль соль none
2 сахар сахар none
3 Соль_синяя синяя соль
4 Соль_йод йод соль
5 Сахар_буряковый буряковый сахар
6 Сахар_тростниковый тростниковый Сахар

Дальше, выборкой я создаю двухуровневое меню приблизительно вот такого вида

1 Соль
а) Синяя
б) Йод
2 Сахар
а) Тростник
б) Буряковый

Делаю это вот так

<?
include('fns.php');
$menu = get_menu();?>
<ul><?foreach($menu as $item):
$submenu = get_submenu($item['title_url']);
?>
<li><a href="products.php?category=<?=$item['title_url'];?>"><?=$item['title'];?></a></li>
<?if(!empty($submenu))
{
echo "<ul>";
foreach($submenu as $item2):?>
<li><a href="products.php?category=<?=$item['title_url'];?>&subcategory=<?=$item2['title_url'];?>"><?=$item2['title'];?></a></li>
<?endforeach;
echo "</ul>";
}?><?endforeach;?></ul>


fns.php
<?
error_reporting(E_ALL);
//Функция подключения к базе данных
function db_connect()
{
$host = 'localhost';
$user = 'root';
$pswd = '***';
$db = '**';

$connection = mysql_connect($host, $user, $pswd);

mysql_query("SET NAMES utf8");

mysql_select_db($db, $connection);

return $connection;
}

//Функция выборки основного меню
function get_menu()
{
db_connect();

$result = mysql_query("SELECT * FROM menu WHERE menu.parent='none' ORDER BY menu.id");

while($row = mysql_fetch_array($result))
{
$res_array[$count] = $row;
$count++;
}

return $res_array;
}

//Функция выборки подменю
function get_submenu($parent)
{
db_connect();

$result = mysql_query("SELECT * FROM menu WHERE menu.parent='$parent' ORDER BY menu.id");

while($row = mysql_fetch_array($result))
{
$res_array[$count] = $row;
$count++;
}

return $res_array;
}


?>

Пытаюсь сделать вертикальную менюшку, которая изначаль не показывает подкатегории, а при клике или наведении отьезжает вниз или выдвигается в бок соответственно.

Пробовал кучу примеров из инернета, но добиться скрытия подпунктов так и не удалось.
Например вот это пример

<ul class="menu">
<li><a
href="">HTML</a></li>
<li><a
href="">CSS</a>
<ul>
<li><a
href="">CSS1</a></li>
<li><a
href="">CSS2</a></li>
<li><a
href="">CSS3</a></li>
</ul>
</li>
<li><a
href="">PHP</a></li>
<li><a
href="">JAVASCRIPT</a></li>
<li><a
href="">PERL</a></li>
<li><a
href="">JAVA</a></li>
</ul>


ul.menu {
margin: 0;
padding: 0;
border-radius: 5px;
-webkit-border-radius: 5px;
-moz-border-radius: 5px;
display: inline-block;
background-color: #3d3e40;
width: 190px;
}

ul.menu li {
list-style: none;
position: relative;
}

ul.menu li a {
padding: 10px 12px 12px;
color: white;
font-size: 13px;
font-weight: bold;
font-family: Arial;
text-decoration: none;
display: block;
border-top: 1px solid #c4c4c4;
}

ul.menu li a:hover {
background-color: #b00000;
}

ul.menu li:first-child a {
border-top: none;
}

ul.menu li:first-child a:hover {
border-radius: 5px 5px 0 0;
-webkit-border-radius: 5px 5px 0 0;
-moz-border-radius: 5px 5px 0 0;
}

ul.menu li:last-child a:hover {
border-radius: 0 0 5px 5px;
-webkit-border-radius: 0 0 5px 5px;
-moz-border-radius: 0 0 5px 5px;
}
/*Выпадающее меню*/
ul.menu li ul {
display: none;
}

ul.menu li:hover ul {
display: block;
position: absolute;
left: 190px;
top: 1px;
background-color: #28282a;
width: 150px;
z-index: 1000;
border-radius: 0 5px 5px 0;
-webkit-border-radius: 0 5px 5px 0;
-moz-border-radius: 0 5px 5px 0;
}

ul.menu li:hover ul li:first-child a:hover {
border-radius: 0 5px 0 0;
-webkit-border-radius: 0 5px 0 0;
-moz-border-radius: 0 5px 0 0;
}

ul.menu li:hover ul li:last-child a:hover {
border-radius: 0 0 5px 0;
-webkit-border-radius: 0 0 5px 0;
-moz-border-radius: 0 0 5px 0;
}


Кажется все просто. Вставь class="menu" в первый <ul> и все готово.
Вставляю class="menu" в своем коде - менюшка преображается согласно стилю НО только не скрывает подпункты и хоть ты тресни.

Может кто что подскажет?
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.