![]() |
|
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]()
|
|
| Hitchman |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 2 Регистрация: 20.10.2007 Репутация: нет Всего: нет |
Доброго времени суток!
Ребят, может вы сталкивались с подобными проблемами... -------------------------------------------------------------------- Расскажу с начала: Сайт, написанный мною, состоит из 3 html частей. 1 часть: лого + меню 2 часть: открытие таблицы и содержимое переменной $content 3 часть: закрытие таблицы 2 и 3 часть на рисунке выделены красной рамкой. То есть в пределах этой рамки можно засунуть любой html. -------------------------------------------------------------------- ![]() Проблема в следующем: Мне нужно чтобы когда я захожу в пункт меню, он выделялся и оставался выделенным пока я нахожусь в нем, смотрю его страницы. То есть, например, если я зашел в <a href='index.php?page=2'>Пункт 1</a>(см. рис.), загрузилась страница 'index.php?page=2', а затем нажал на ссылку <a href='index.php?page=10'>Ссылка 1</a>, которая находиться на странице "index.php?page=2", но при этом "Пункт 1" остался выделенным, так как я нахожусь внутри него. То есть это совсем разные страницы, которых ничего не связывает, кроме как путь как добраться до них. <a href='[color="#FF0000"]index.php?page=2[/color]'>Пункт 1</a>[size="4"] ->[/size] <a href='[color="#FF0000"]index.php?page=10[/color]'>Ссылка 1</a> Вот что мне необходимо, схематично: Пункт 1 _________сслыка 1 _________ссылка 2 Пункт 2 Пункт 3 Пункт 4 Вот как меню строится (в этом коде реализуется только выделение основного меню, идет сравнение location с адресом ссылки каждого пункта меню, и если они совпадают, то выделяем этот пункт, но при переходе на другую страницу location меняется и выделение изчезает):
Я попробовал сделать это 2 способами: 1. В cookies засовываю мой location. То есть пока я нахожусь в одном из пунктов меню, пункт меню выделяется и location не меняется. Работает, но кукис не успевает меняться и выделяется предыдущий пункт меню, а потом тот куда зашел. Такая же ситуация и с $_SESSION[] - не успевает 2. Сделал это с флагами. То есть каждому пункту меню соответствует свой идентификатор, передаваемый методом GET Например: <a href='index.php?page=2&flag=punkt1'>Пункт 1</a> И если заходить на любые страницы внутри сайта, в ссылке на которую будет присутствовать "flag=punkt1", то этот пункт будет выделяться. На этой идее и остановился, но мне она очень не нравиться, так как любой пользователь сможет изменить "flag" и выделен будет совсем другой пункт меню, нежели чему принадлежит страница. -------------------------------------------------------------------- Очень прошу помочь мне с реализацией этой задачи! :( |
|||
|
||||
| skyboy |
|
||||||||
|
неОпытный ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9820 Регистрация: 18.5.2006 Где: Днепропетровск Репутация: 75 Всего: 260 |
раздели параметры, связанные с меню(например, "mode=") и со страничной разбивкой(скажем, "page=").
Тогда пункт меню будет выглядеть как
и в начале страницы ты можешь в $_SESSION запихивать это самое "mode", перекрывая то, что было там раньше
после чего в теле кода формирования меню проверять переменную $mode
А переменные номера страниц будут независмыми
Извини, если слишком подробно |
||||||||
|
|||||||||
| smartov |
|
|||
![]() свой собственный ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 4225 Регистрация: 2.2.2006 Где: NJ Репутация: 7 Всего: 259 |
Hitchman, тебе нужно определиться: тебе "по-быстрому сделать" или "сделать так, как должно быть".
Если по-быстрому, то через куки или сессии. "Не успевает меняться" это значит что ты просто что-то неверно написал. Нужно было, скорее всего, обработку сессий/куков делать раньше, чем обработку меню. Если ты хочешь "так как должно быть", то нужно сделать нормальную базу, в которой материал по ссылкам "Ссылка 1" и прочим будет связан например с категорями, которые и выводятся в меню, таким образом, попадая на страничку с материалом ты будешь всегда знать, какой пункт меню подсвечивать. Это сообщение отредактировал(а) smartov - 21.10.2007, 11:40 |
|||
|
||||
| Hitchman |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 2 Регистрация: 20.10.2007 Репутация: нет Всего: нет |
Большое спасибо. Решил все таки сделать разделы сайта.
|
|||
|
||||
![]()
|
| Правила форума "PHP" | |
|
|
Новичкам:
Важно:
Внимание:
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | PHP: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |