Зависимые поля - Conditional Fields (скринкаст)

Главные вкладки

Аватар пользователя EllECTRONC EllECTRONC 10 января 2009 в 2:37

Модуль Conditional Fields. Этот модуль позволяет сделать зависимые поля. Т.е поле (зависимое или условное) появляется только после выбора определенной опции в предыдущем поле (CCK-виджете).

Как это работает

Допустим вы делаете анкету или форму, которую должен заполнить пользователь. Модуль Conditional Fields позволяет создать условия для вызова и показа определенных полей. В зависимости от того, что выбирает юзер ему будут показываться, заранее подготовленные Вами поля. Это особенно может быть полезно если форма получается большая или вы просто хотите спрятать "лишние" поля, чтобы сразу не отпугивать юзера.

Пример использования

Если вы делаете форму, анкету, бриф и "это" получается громоздким, то будет вполне уместно заранее скрыть "лишние" поля.

Приступим. Для примера делаем обычный вопрос для анкеты. Естественно стначала устанавливаем Conditional Fields (требует CCK)

Описание: Если пользватель выбрал “да” → появляется зависимое поле-список с лейблом “Марка”, он выбирает марку и появляется еще одно зависимое поле-список с лейблом “Модель”. Если пользователь выбрал “нет” → он не видит полей зависимых от поля “да” и просто переходит к следующему вопросу.

Отметьте, что это делается без использования таксономии.

В настройках зависимых полей (или полей по условию) вы можете определить отображение этих полей, как:

  • не использовать javascript. Поля будут спрятаны только при просмотре материала.
  • скрыть (будут спрятаны)
  • отключить (будут показаны, но не активны)

Причем отображение настраивается и для показа при просмотре материала, и при создании.

Подробнее + скринкаст (только скачивание), добавлен просмотр.

Комментарии

Аватар пользователя EllECTRONC EllECTRONC 12 января 2009 в 17:22

"<a href="mailto:ingumsky@drupal.org">ingumsky@drupal.org</a>" wrote:
Очень интересно. Спасибо. Как я понимаю, это что-то вроде hierarchical_select, но без использования таксономии, да?

Пока не было ни времени, ни необходимости поюзать hierarchical_select, так что ничего не могу сказать про сравнение. Хотя видела демку hierarchical_select и думаю их просто нечем сравнивать.

Аватар пользователя EllECTRONC EllECTRONC 14 января 2009 в 17:55

"Tsuba" wrote:
Для последовательного ввода адреса подойдет?
Город —> улица —> дом

Да, но зачем?! Для адреса, думаю, можно просто все эти поля показать сразу, зачем поэтапно? Если в этом смысл?

Аватар пользователя Holodno Holodno 20 января 2009 в 13:41

EllECTRONC wrote:
"Tsuba" wrote:
Для последовательного ввода адреса подойдет?
Город —> улица —> дом

Да, но зачем?! Для адреса, думаю, можно просто все эти поля показать сразу, зачем поэтапно? Если в этом смысл?

Нужная функция для сайта недвижимости. Так на лету можно фильтровать вывод улиц, скажем, одного из районов города. Ведь удобней выбирать улицу из 20-и, а не из 120-и вариантов.

Аватар пользователя hamster88 hamster88 16 января 2009 в 16:06

а при регистрации это можно использовать на форме регистрации? Пользователь ввёл значение роли и появлось дополнительное поле для этой роли.

Аватар пользователя EllECTRONC EllECTRONC 16 января 2009 в 19:42

"hamster88" wrote:
а при регистрации это можно использовать на форме регистрации?

ну... если вы эту форму кастомизируете и сделаете шаблон (не помню возможно ли это в 5-ом друпале), тогда возможно и да.
либо искать модуль, который делает профиль юзера нодой (типом материала?), а дальше редактировать.
Хотя, по-моему, есть другое решение.

Аватар пользователя EllECTRONC EllECTRONC 23 января 2009 в 19:43

Друзья, кто смотрел (качал) скринкаст, хоть бы отзывы какие оставили.
Стоило оно того или нет? Может можно было картинками обойтись?!

Отзывы можно и в блоге, там можно мыло не указывать, только коммент.

Аватар пользователя Camor Camor 18 февраля 2009 в 14:44

"Tsuba" wrote:
Ведь удобней выбирать улицу из 20-и, а не из 120-и вариантов.
Удобнее по первым 3-4 буквам с автозаполнением.

Аватар пользователя fasdalf@fasdalf.ru fasdalf@fasdalf.ru 23 марта 2009 в 22:39

UP. То есть при редактировании вся форма со всеми полями и вариантами регулирующих полей прогружается и потом лишнее скрывается через JS?

Чем кроме тормозов чревато использование на продакшен-сайтах?

Аватар пользователя EllECTRONC EllECTRONC 23 марта 2009 в 22:57

"Camor" wrote:
Удобнее по первым 3-4 буквам с автозаполнением.

С автозаполнением пользователю придется писать эти 3-4 буквы, а тут просто выбрал из списка и двинулся дальше.
"<a href="mailto:fasdalf@fasdalf.ru">fasdalf@fasdalf.ru</a>" wrote:
Чем кроме тормозов чревато использование на продакшен-сайтах?

А вы попробуйте. На формах без излишеств тормозов не замечено.

Аватар пользователя fasdalf@fasdalf.ru fasdalf@fasdalf.ru 23 марта 2009 в 23:07

У меня получилось 40-50, если вместе. Собирался пачками по 5-20 разбить по разным типам материала.
А кроме тормозов?
Кстати, что-то похожее для exposed фильтров views есть?

Аватар пользователя AkeLLbl4 AkeLLbl4 12 мая 2009 в 21:19

Замечательно. Найти бы что нибудь подобное для exposed filter. Что бы поля фильрации выводились по такому принципу

Аватар пользователя jason32 jason32 28 мая 2009 в 13:24

Так нашли что-нить подобное для exposed filter? Тоже очень нужно, надо фильтровать по такому полю, а никакого инструмента нет для этого.

Аватар пользователя Dakascos@drupal.org Dakascos@drupal.org 17 июня 2009 в 10:46

jason32 wrote:
Так нашли что-нить подобное для exposed filter? Тоже очень нужно, надо фильтровать по такому полю, а никакого инструмента нет для этого.

Цитата из топика "Зависимые поля":
-------------------------------------------------
Опубликовано Freakachoo в чт, 11/06/2009 - 00:58.
Задам вопрос - нашлось ли какое-то решение?
Тоже бьюсь над этой проблемой особенно для Exposed filters модуля Views!
-------------------------------------------------------------------------
Цитата из топика: "cck и hierarchical_select":
-------------------------------------------------
Прислано: Stein
Есть два сск селекта, можно ли с помощью hierarchical_select сделать так, чтобы второй селект появлялся на экране только после того как выбран определенный пункт из первого? не прибегая к таксономии! Спасибо.
----------------------------------------------
Цитата из топика: "Создание иерархических выпадающих списков на jQuery":
------------------------------------------------------------------------
Опубликовано Freakachoo в ср, 10/06/2009 - 22:54
....Подскажите пожалуйста как через ваш скрипт реализовать - ооочень нужно! А hierarchical_select для 6-ки эту функцию еше не реализовал и написал что реализует только в августе Sad а нужно ведь щас!
-------------------------------------
Цитата из топика: "Новый модуль hierarchical_select":
-----------------------------------------------------
Опубликовано Dakascos@drupal.org в пн, 08/06/2009 - 11:25
Всем привет! Скажите, есть ли сейчас возможность использования модуля hierarchical_select под Drupal 6.x? Может можно его каким-либо образом пропатчить? Замучился совсем со скриптами ковыряться((( Знаю, что работает под 5-ой версией без проблем, а вот с 6-й... Есть ссылка http://drupal.org/node/342992, там рассматривается эта проблема, но решена ли она, непонятно((
Помогите, кто-нибудь!
---------------------
Список становится все длиннее, а ответов все нет и нет. Я понимаю, что все что делается в проекте "Drupal" на добровольных началах и интузиазме и никто никому не обязан и ничего не должен. Но я, честно говоря, запутался в формулировках своего вопроса. Уже и не знаю, как лучше его преподнести, чтобы получить адекватный ответ. Решение этого вопроса есть, оно более тривиально, чем я могу себе представить. Но вот что-то никак... что-то разговор ни о чем... Приходится вникать и разбираться самому, тратя на это уйму времени, которого и так нет. Не хватало еще обозлиться на всех: "Мне никто не помогал и я никому не помогу...".
Не нужно комментариев! Просто нужен дельный совет, помощь. Кому не жалко 2 минут своего времени, помогите.

Аватар пользователя Tinnka Tinnka 24 апреля 2013 в 23:20

jason32 wrote:
Так нашли что-нить подобное для exposed filter? Тоже очень нужно, надо фильтровать по такому полю, а никакого инструмента нет для этого.

подпишусь