Здравствуйте.
Хочу создать пошаговую форму с зависимыми полями на разных шагах. Допустим на первом шаге выбераем категорию. На втором шаге заполняем зависимые от этой категории поля.
Реализовал зависимость при помощи #states и hook_form_alter
Многошаговость через модуль Multistep Node form
Вот только зависимость работает если зависимое и поле от которого зависит видимость, находятся на одном шаге.
Ну а если мы выбрали значение на первом шаге, переходим на второй шаг, зависимость не срабатывает. Как возможно решить проблему. Для зависимости использую код
<?php
function corporateclean_form_tovar_node_form_alter(&$form, &$form_state, $form_id) {
$form['field_vibor_cafe']['#states'] = array(
'visible' => array(
'select[name="field_vibor[und]"]' => array('value' => '0',),
),
);
}?>
Комментарии
Возможно Вам поможет пример multistep из https://drupal.org/project/examples
Попробую поковыряться. Просто с этой проблемой бьюсь уже около месяца. Сроки уже поджимают, если кто вдруг такое уже делал, или знает решение проблемы. Пожалуйста отпишитесь.
Люди проблему так и не решил. Кто что думает?
Насколько я знаю, #states - это чисто JS механизм, он не подгружает поля, а просто яваскриптом изменяет их св-ва/стили. Естественно, что он не срабатывает, когда на форме нет необходимых полей (в данный момент).
Если у вас зависимость разнесена в разные шаги форм, то самым простым способом явяется написание своего hook_form_alter(), просто внимательно отслеживайте текущий шаг формы и значения полей и прячте/показывайте поля по мере необходимости.
Можно пример, как это реализовать? Я что то не совсем понял.
Просто я тоже использую hook_form_alter() и там прописываю states.