Как программно установить условное поле с функциональностью OR в Drupal 7

В mymodule_form_alter() я программно устанавливаю состояния для моих условных полей. IE

$form['my_field_one']['#states'] = array(
              'visible' => array(
                ':input[name="my_dependee_field[und]"]' => array('value' => 'primary'),
              ),
            );

И это прекрасно работает!

Однако мне нужно присвоить некоторым моим полям функциональность OR (несколько допустимых значений зависимых) и не могу понять, как назначить это программно (пожалуйста, извините за мой ограниченный опыт работы с PHP).

Я пробовал некоторые вещи, такие как...

$form['my_field_one']['#states'] = array(
  'visible' => array(
    ':input[name="my_dependee_field[und]"]' => array('value' => array('0' => 'primary','1' => 'secondary',),),
  ),
);

... с (очевидно) не везет.

Может ли любая добрая душа протянуть руку помощи или указать мне правильное направление. Крайне важно, чтобы я сделал это программно.

Любая помощь приветствуется.

СПАСИБО!

1 ответ

Решение

Обновите свой #state используя массив с двумя возможными значениями:

$form['my_field_one']['#states'] = array(
    'visible' => array(
        ':input[name="my_dependee_field[und]"]' => array(
            array('value' => 'primary'),
            array('value' => 'secondary'),
        ),
    ),
);
Другие вопросы по тегам