| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > JavaScript: Общие вопросы > древовидное меню с чекбоксами |
| Автор: yalo 25.10.2007, 10:59 |
| Здравствуйте у меня вопрос к профессионалам, так как задача как мне кажется не совсем тривиальная, а в JS я слаба, потому пишу в этот раздел. Есть такой раздел в админке - Фирмы. Каждая фирма может быть размещена в нескольких разделах, каждый раздел имеет свое уникальное id, также разделы могут иметь вложеную структуру естественно. В списке фирм при редактировании каждой фирмы раскрывается древовидное меню (образец в прикрепленном файле) разделов сайта, каждый раздел идет кнопкой <input type='checkbox'>, причем если фирма отображается в данном разделе, то чекбокс выставлен, если не отображается, то снят. Задача: при рассмотрении определенного инпута (назовем его узел A), если в нем самом фирма отображена, следовательно он должен быть checked, другие разделы из этого же узла, нахожящиеся с check-нутым разделом на одном уровне (назовем их B и C), также должны отобразиться, даже если они не checked. Далее рядом с "чекнутыми" разделами должны открываться разделы-потомки последующего уровня, но не все, а на один уровень лишь ниже родителя (то есть вложенные узлы внтури уже этих потомков должны быть скрыты, при условии разумеется если нигде внутри них нет checked-разделов). То есть показаны первоначально разделы того уровня, в котором хотя бы одна фирма checked, и раскрыты ближайшие потомки тех разделов которые checked. Далее при щелкании на не "чекнутых" разделах, должна раскрываться ветвь, отображающая разделы следующего уровня уровеня плюс дополнительно должен автоматически становиться "чекнутым" их родитель, если еще раз кликнуть, то раздел свернется опять до родителя, а checked снимется, также если щелкнуть на первоначально "чекнутый" и раскрытый раздел, он также должен свернуться и галочка сняться. Вот. такая задача. Хочу решать ее таким образом. Передавать из пхп массив всех разделов, отображающий соответственно вложенную структуру разделов сайта и одномерный массив цифр, являющихся номерами "чекнутых" первоначально разделов (типа (1,5,23)) для выбранной фирмы. Дальнейшее все хочу реализовать на JS. Хочу узнать корректный ли это будет подход во-первых, а во-вторых, можно ли передать функции JS ассоциативный массив из пхп? |