Ответов: 4 Просмотров: 3751
|
Здравствуйте! Извините за повтор!!!!!!!!!!
Пишу меню у которого должен быть родитель и подпункт меню, в итоге:
PHP:
скопировать код в буфер обмена
<?PHP print '<div id="contaner">'; //вытягиваем основные элементы меню $sql = "SELECT * FROM tbl_pages WHERE pg_pid = 0 ORDER BY pg_id"; //открываем основной список print '<ul id="nav">'; //выводим элементы основного списка print '<li id="selected"><a href="?p='. $row['pg_id'].'">' . $row['pg_link'] . '</a>'; //вытягиваем подменю к каждому меню $sql1 = "SELECT * FROM tbl_pages WHERE pg_pid = " . (int)$row['pg_id']; //открываем список подменю print '<ul id="nav1">'; //выводим элементы зависимого списка print '<li id="selected"><a href="?p='.$row1['pg_id'].'">'.$row1['pg_link'].'</a></li>'; } print ' </ul></li>'; } print ' </ul>'; print '</div>'; ?>
CODE ( SQL):
скопировать код в буфер обмена
CREATE TABLE `tbl_pages` ( `pg_id` int(11) NOT NULL AUTO_INCREMENT, `pg_link` varchar(150) NOT NULL, `pg_title` varchar(255) NOT NULL, `pg_cont` text, NOT NULL, `pg_nav` int(2), NOT NULL, `pg_order` tinyint(2), NOT NULL, `pg_pid` int(11), NOT NULL, PRIMARY KEY (`nav_id`) ) ENGINE=MyISAM AUTO_INCREMENT=12 DEFAULT CHARSET=utf8 AUTO_INCREMENT=12 ; -- -- Дамп данных таблицы `tbl_nav` -- INSERT INTO `tbl_pages` VALUES (1, 0, 'Пункт1'); INSERT INTO `tbl_pages` VALUES (2, 0, 'Пункт2'); INSERT INTO `tbl_pages` VALUES (8, 1, 'Подпункт1'); INSERT INTO `tbl_pages` VALUES (9, 1, 'Подпункт2'); INSERT INTO `tbl_pages` VALUES (10, 2, 'Подпункт3'); INSERT INTO `tbl_pages` VALUES (11, 2, 'Подпункт4');
я добавил поле `nav_pid` int(11) NOT NULL,
Оно показывает родителя для подпунктов меню.
Смотрите в таблицу. У Пункт1 если два подпункта - Подпункт1 и Подпункт2 - поэтому в поле nav_pid для этих подпунктов я ставлю 1 - это идентификатор(поле nav_id) Пункта1.
Подпункты выводятся, но не у своего родителя а у всех. и со стилями проблема.
Возможно надо изменить с id на class.
Подскажите как можно проще вывести правильно данные. неважна нагрузка защита и тп тп ..
(Добавление)
Возможно это ошибка стилей????
CODE ( htmlphp):
скопировать код в буфер обмена
#contaner { // блок в котором выводиться меню width:800px; margin:0px auto; margin-top:10px; } ul, li { margin:0; padding:0; } #blob { // эффект для меню background:#0b2b61; border-right: 1px solid #0059ec; border-left: 1px solid #0059ec; position: absolute; z-index: 1; top: 0; background: -moz-linear-gradient(top, #F89323, #FC0); background: -webkit-gradient(linear, left top, left bottom, from(#0b2b61), to(#1153c0)); -moz-border-radius: 4px; -webkit-border-radius: 4px; -moz-box-shadow: 3px 3px 15px #011331; -webkit-box-shadow: 3px 3px 15px #011331; } #nav { // основное меню т.е. родитель position: relative; background:; float: left; } #nav li { float: left; list-style: none; border-right: 1px solid #4a4a4a; border-left: 1px solid black; } #nav li a { color: #000;/*шрифт*/ z-index: 2; position: relative; cursor: pointer; float: left; font-size: 15px; font-family: Arial, Helvetica, sans-serif; text-decoration: none; padding: 10px 40px; } #nav1 { // под.меню position: relative; background:; float:right; } #nav1 li { float: right; list-style: none; border-right: 1px solid #4a4a4a; border-left: 1px solid black; } #nav1 li a { color: #000;/*шрифт*/ z-index: 0; position: relative; cursor: pointer; float: right; font-size: 15px; font-family: Arial, Helvetica, sans-serif; text-decoration: none; padding: 10px 40px; }
Подскажите пожалуйста в чем у меня загвоздка? либо это вывод из БД либо стили? |