Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Пошаговый вывод дерева меню, вывести дерево разделов в полуоткрытом 
:(
    Опции темы
web321
Дата 7.11.2007, 13:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 7.11.2007

Репутация: нет
Всего: нет



Подскажите плиз наиболее разумный алгоритм.

Имеется таблица MySQL с такой структурой разделов сайта

(упрощенно)

id - элемент
parent_id - родитель элемента

необходимо вывести эти разделы в виде древовидного меню, но не сразу все, а пошагово, например:

Раздел 101
 - подраздел 201
 - подраздел 202 (мы находимся здесь)
    - подраздел 301
    - подраздел 302
 - подраздел 203
Раздел 102
Раздел 103

т.е. чтобы при клике на другой раздел, подразделы скрывались. 

Подозреваю что на вложенных множествах это было бы легче, но структуру БД менять нельзя.
Как лучше поступить в данной ситуации?


Это сообщение отредактировал(а) web321 - 7.11.2007, 13:04
PM MAIL   Вверх
PARROT
Дата 7.11.2007, 13:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 2339
Регистрация: 5.1.2005
Где: Спб-ЦарьГрад

Репутация: 23
Всего: 50





--------------------
Безумный утешается прошедшим, слабоумный - будущим, умный - настоящим!
PM MAIL   Вверх
web321
Дата 7.11.2007, 14:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 7.11.2007

Репутация: нет
Всего: нет



Примерно так я и вывожу его сейчас.

Но так меню выводится целиком, а мне необходимо сделать пошаговый вывод. 
Но есть как скрывать/раскрывать подразделы, имея на входе один параметр из GET - id текущего раздела. 


Вот и спрашиваю как в данном случае разработать алгоритм?

Это сообщение отредактировал(а) web321 - 7.11.2007, 15:00
PM MAIL   Вверх
DioNiR
Дата 7.11.2007, 16:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 130
Регистрация: 30.12.2006

Репутация: нет
Всего: нет



Сверяешь если ид не раздела не тот что выбран значит не показываем. Если тот то показываем.
--------------------
Думали это конец? Ха, всё только начинается.
PM MAIL   Вверх
skyboy
Дата 7.11.2007, 17:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: 75
Всего: 260



тебе надо так:
Код

Раздел 1
 Подраздел 1
  Подподраздел 1 // мы здесь
   Подподподраздел 1
   Подподподраздел 2
  Подподраздел 2
 Подраздел 2
 Подраздел 3
 Подраздел 4
Раздел 2
Раздел 3

или так:
Код

Раздел 1
 Подраздел 1
  Подподраздел 1 // мы здесь
   Подподподраздел 1
   Подподподраздел 2
Раздел 2
Раздел 3

В смысле - братьев выбирать для каждого из предков текущего узла или только для братьев текущего узла? По твоему примеру слегка не заметен этот момент...

PM MAIL   Вверх
web321
Дата 8.11.2007, 09:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 7.11.2007

Репутация: нет
Всего: нет



Цитата

Сверяешь если ид не раздела не тот что выбран значит не показываем. Если тот то показываем.


по такому принципу можно выводить только первый уровень, либо искать головной раздел и выводить все дерево текущей ветке (при клике разделе первого уровня), а вот промежуточные звенья пошагово так не выведешь :(

Цитата

По твоему примеру слегка не заметен этот момент...


каждого из предков, т.е. первый вариант

Это сообщение отредактировал(а) web321 - 8.11.2007, 09:42
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0453 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.