Вы здесь

Настройка зависимых полей при вводе ноды в Drupal 7

1

Добрый день.

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

Например, есть поле "предприятие", значения которого берутся из нод - списка предприятий и выбираются с помощью entity_reference.

И есть поле "сотрудник", значения которого для выбора следует брать из нод - списка сотрудников, но не из всего списка сотрудников, а только из тех сотрудников, которые относятся к предприятию, значение которого было выбрано в первом поле.
Сотрудники выбираются также с помощью entity_reference, которое строится с помощью views, а аргументом для views должно служить значение первого поля.

Вот хочется проконсультироваться, существуют ли средства для реализации такой зависимости?
То есть, чтобы при изменении поля 1 автоматически перестраивался список возможных значений поля 2 в случае, если значения поля 1 берутся из базы.

Насколько я понял, Conditional Fields для таких задач не подходит, так как он предполагает, что список значений поля 1 должен быть фиксированный и мы, соответственно, должны знать все его значения.

Версия Drupal: 
7.x
Категория: 
Field APIForm API
Вопрос задан 21.01.2016 - 20:41

Ответы

3

Думаю, вам нужен https://www.drupal.org/project/ddf

Ответ дан 21.01.2016 - 21:06

В принципе, то, что надо, заработало.
К сожалению, модуль работает только, если зависимое поле отображается как "выбор из списка", и не работает в случае отображения значений как "флажки и переключатели".

Комментарий оставлен 21.01.2016 - 22:39

Так заведи ишью, Макс Подоров (автор модуля) хороший ментейнер - пофиксит (либо сам попробуй патч предложить).

Комментарий оставлен 22.01.2016 - 00:36

Об этом уже официально на странице модуля упомянуто - сейчас работает только со списками.

Комментарий оставлен 22.01.2016 - 08:21

Странно, я этого не вижу... на странице модуля вообще только одно предложение "Makes field value or options depend on other field values when editing entity."

Комментарий оставлен 22.01.2016 - 10:50
0

Тоже сталкивался с такой задачей. Готового решения не нашел, поэтому делаю "костыльно". Подробно с кодом описывал в ответе: http://dru.io/question/3659
Кратко на вашем примере: на сервере создаю массив, в который записываю к какому предприятию относится какой сотрудник. Передаю этот массив на клиент в виде js объекта. И на клиенте при изменении селекта предприятия скрываю лишних сотрудников.

Ответ дан 21.01.2016 - 20:55