Модераторы: Sardar, Aliance
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> древовидное меню с чекбоксами 
:(
    Опции темы
yalo
Дата 25.10.2007, 10:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Здравствуйте
у меня вопрос  к профессионалам, так как задача как мне кажется не совсем тривиальная, а в JS я слаба, потому пишу в этот раздел.

Есть такой раздел в админке - Фирмы. Каждая фирма может быть размещена в нескольких разделах, каждый раздел имеет свое уникальное id, также разделы могут иметь вложеную структуру естественно.
В списке фирм при редактировании каждой фирмы раскрывается древовидное меню (образец в прикрепленном файле) разделов сайта, каждый раздел идет кнопкой <input type='checkbox'>, причем если фирма отображается в данном разделе, то чекбокс выставлен, если не отображается, то снят.

Задача: при рассмотрении определенного инпута (назовем его узел A), если в нем самом фирма отображена, следовательно он должен быть checked, другие разделы из этого же узла, нахожящиеся с check-нутым разделом на одном уровне (назовем их B и C), также должны отобразиться, даже если они не checked. Далее рядом с "чекнутыми" разделами должны открываться разделы-потомки последующего уровня, но не все, а на один уровень лишь ниже родителя (то есть вложенные узлы внтури уже этих потомков должны быть скрыты, при условии  разумеется если нигде внутри них нет checked-разделов). То есть показаны первоначально разделы того уровня, в котором хотя бы одна фирма checked, и раскрыты ближайшие потомки тех разделов которые checked. Далее при щелкании на не "чекнутых" разделах, должна раскрываться ветвь, отображающая разделы следующего уровня уровеня плюс дополнительно должен автоматически становиться "чекнутым" их родитель, если еще раз кликнуть, то раздел свернется опять до родителя, а checked снимется, также если щелкнуть на первоначально "чекнутый" и раскрытый раздел, он также должен свернуться и галочка сняться.

Вот. такая задача.
Хочу решать ее таким образом. Передавать из пхп массив всех разделов, отображающий соответственно вложенную структуру разделов сайта и одномерный массив цифр, являющихся номерами "чекнутых" первоначально разделов (типа (1,5,23)) для выбранной фирмы. 

Дальнейшее все хочу реализовать на JS. Хочу узнать корректный ли это будет подход во-первых, а во-вторых, можно ли передать функции JS ассоциативный массив из пхп?

Присоединённый файл ( Кол-во скачиваний: 14 )
Присоединённый файл  structure.gif 8,17 Kb
PM MAIL ICQ   Вверх
dsCode
Дата 25.10.2007, 16:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 565
Регистрация: 8.9.2007
Где: Saint-Petersburg

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



yalo
Цитата(yalo @  25.10.2007,  10:59 Найти цитируемый пост)
Хочу узнать корректный ли это будет подход во-первых

да, почему нет? но более корректный подход - подгрузка нужных чайлдов. Т.е. изначально загружены только паренты, при первом клике на парент - аяксом по parent_id подгружаются его чайлды (по колбеку загрузки в объект паренты записываются чайлды - т.е. при последующих кликах они будут браться из этого "кэша" а не запросом).

Цитата(yalo @  25.10.2007,  10:59 Найти цитируемый пост)
а во-вторых, можно ли передать функции JS ассоциативный массив из пхп?

да - json


--------------------
the .code inside
:my music
PM MAIL WWW ICQ Jabber   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию.
 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: Общие вопросы | Следующая тема »


 




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


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

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