Здрасти:))
Вот у меня проблема появилась, все никак не могу решить. Помогите пожалуйста, а то чайник еще, но оч и оч хочу разобраться.
есть вот такой вот скрипт меню:
-----------------------------------------------------------------------------------------------------------------------
Автотранспорт
http://localhost/sectionmain-1/\'" onclick="show_group(subnavs, \'navsection_1\'); return false;" href="http://localhost/sectionmain-1/">Автотранспорт
http://localhost/sectionmain-2/\'" onclick="show_group(subnavs, \'navsection_2\'); return false;" href="http://localhost/sectionmain-2/">Недвижимость
http://localhost/sectionmain-3/\'" onclick="show_group(subnavs, \'navsection_3\'); return false;" href="http://localhost/sectionmain-3/">Бытовая техника
-------------------------------------------------------------------------------------------------------------------
И проблема такова, что мне надо сделать меню наподобии это скрипта, НО! если здесь разделов всего лишь 3, то у меня на сайте будет меню из 24 разделов + в каждом этом разделе еще по 20-25 пунктов. Всего больше 400 пунктов меню.
Естественно если делать так как в этом скрипте, у меня текст получится невообразимо огромный, поэтому я всё решил делать через PHP + MySQL + HTML.
Сделал две таблицы(одна для групп, другая для подгрупп)
-------------------------------------------------- CREATE TABLE `groups` ( `group_id` int(10) NOT NULL auto_increment, `group_name` char(30) NOT NULL default \'\', PRIMARY KEY (`group_id`), KEY `group_name` (`group_name`));
CREATE TABLE `subgroups` ( `subgroup_id` int(10) NOT NULL auto_increment, `group_id` int(10) NOT NULL default \'0\', `subgroup_name` char(50) default NULL, `subgroup_num` int(5) default NULL, PRIMARY KEY (`subgroup_id`), KEY `subgroup_name` (`subgroup_name`), KEY `group_id` (`group_id`)); ---------------------------------------------------
и в PHP пытался сделать всё при помощи шаблона:
---------------------- templates.php ------------------------------------------------------------------------------------------------------------
$menu_loadpicture=\'\'; $menu_ondblclick=\'$menu_onclickstart=\'onclick="show_group(\'; $menu_onclickend=\'return false;"\'; $menu_hrefstart=\' href="\'; $menu_strongstart=\'\'; $menu_strongend=\'\'; $menu_aend=\'\'; $menu_ulstart=\' $menu_ulend=\'style="MARGIN-TOP: 5px; DISPLAY: none; PADDING-LEFT: 0px; MARGIN-LEFT: 30px">\'; $menu_listart=\'$menu_end=\' |
\';
?>
-------------------------------------------------------------------------------------------------------------
и в результате вот такая фигня (ой, по любасу смеяться будете, да? :)))) помогите!!!
(может есть совершенно другие способы??)
---------------------------
index.php
--------------------------------------------------------------------------------------------------------------------
href="style.css" rel=stylesheet>
Автотранспорт
include (\'configure.php\'); include (\'templates.php\');
mysql_connect (DB_SERVER, DB_USER, DB_PASS) or die ("Не могу соединиться с базой"); @mysql_select_db(DB_NAME) or die ("Не могу выбрать базу");
$query=mysql_query("select * from groups") or die ("Не могу выбрать запрос");
$navsection[1]=1; $url=DB_SERVER.\'/section_\'.$navsection[1];
while ($line=mysql_fetch_array ($query)) { extract($line); echo $menu_loadpicture;
echo $menu_ondblclick."""."http://".$url."\'".""";
echo $menu_hrefstart."http://".$url.""".\'>\'.$menu_strongstart.$group_name.$menu_strongend.$menu_aend; echo $menu_ulstart.\'navsection_\'.$navsection[1].$menu_ulend;
echo $menu_listart.\'http://\'.$url.""".\'>\'.$group_name.$menu_aend;
} mysql_close(); ?>
----------------------------------------------------------------------------------------------------------------------
Записан
« Ответ #1 : 12 Июля 2006, 11:11:04 »
Reindjer А какая принципиальная разница, что ты пишешь в серверном коде, если для js-скрипта тебе все равно надо вывести совершенно одинаковый объем данных?
Поищи что-нибудь с динамической подгрузкой.
Записан
LJ: Backslashed life (rss)
« Ответ #2 : 19 Июля 2006, 23:00:11 »
я посмотрел про динамическую подгрузку, но там там много всего: и jshttprequest и ajax супернавороченный какой то... как мне использовать это в меню?
Записан
« Ответ #3 : 21 Июля 2006, 10:40:45 »
Reindjer Основная мысль ответа: надо будет что-то написать самому.
А теперь подробнее: при помощи асинхронных запросов (ajax) можно получать с сервера только те части меню, которые действительно нужно отобразить. В коде это выглядит примерно так: пользователь "раскрывает" пункт меню - JS-ом кидается запрос на сервер - получаем ответ и динамически создаем нужные пункты подменю.
Записан
LJ: Backslashed life (rss)
|