Скрыть определенные значения поля_2 при выборе определенного значения поля_1

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

Аватар пользователя iNFerNo iNFerNo 5 июня 2013 в 11:22

Требуется отфильтровать ненужные значения из списка значений поля_2, при выборе значения из поля_1.

Поле_1 - это список текстовый
Поле_2 - это термины словаря

Стоит задача через свой модуль или модуль какой-нить скрыть ненужные значения поля_2 для некоторых значений поля_1.

Комментарии

Аватар пользователя iNFerNo iNFerNo 5 июня 2013 в 11:24

Хочется скрыть от греха подальше значения поля_2, которые и не должны даже выбираться для значений поля_1.

Аватар пользователя kv4 kv4 5 июня 2013 в 12:44

Посмотрите как это сделано для формы редактирования типов материалов. Например, когда выбираем тип поля, соответствующие виджеты видны, другие нет.

Аватар пользователя iNFerNo iNFerNo 5 июня 2013 в 14:32

Виджеты это одно. А значения это другое. как поля показываться и не показывать ясно. Но конкретный пример для значений хочется увидеть, найти.

Аватар пользователя kv4 kv4 10 ноября 2015 в 11:49


Для каждого из значений "Тип данных для хранения" свой список значений "Вид элемента формы для редактирования данных".

Реализация находится вот тут ../drupal_root/modules/field_ui/field_ui.js

Аватар пользователя iNFerNo iNFerNo 6 июня 2013 в 9:37

Как то сложно это. Мне бы что то типа

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

Аватар пользователя kv4 kv4 6 июня 2013 в 10:22

Ну не знаю.
Перед тем как показать форму пользователю, создайте массив с возможными значениями

<?php
$values 
= array(
  
=> array(1234),
  
=> array(13243546),
  
=> array(12233445),
  
=> array(15263748),
);

  

$form['#attached']['js'][] = array(
    
'data' => array('values' => $values),
    
'type' => 'setting'
  
);
?>

На стороне клиента обрабатываете событие изменения первого элемента. В обработчике соответственно смотрите какое значение имеет выбранный элемент, и во второй (зависимы от первого) элемент суёте соответствующие значения из values.

Вроде бы достаточно просто. Как ещё проще я не знаю. Может кто-то другой подскажет.