собственно сабж, при выборе из списка значения, появляется зависимое поле, любое введенное в него значение при сохранении не сохраняется(сорри за туфтологию). Как бороть? Было у кого?
То есть тупо пропадает? Или в редактировании формы оно есть, а при отображении нет? Если второе, тогда в настройках отображения сделайте его видимым. И да, модуль Conditional fields кривоват.
я в итоге отказался от Conditional Fields, и сделал с помощью #state
тем более, что модуль делает то же самое, но он криво написанный.
У меня не получилось добиться результата. Подскажите что я делаю не так?
1. Создаю (Field UI) к примеру два поля field_1 и field_2
2. В файле template.php пишу:
name="field_1[und]" беру из кода страницы. В коде у меня field_1[und][Название лэйбла по русски] но я пробовал в функции указывать оба варианта.
Всеровно сразу отображается два поля и при клике по field_1 не происходит никаких изменений.
Комментарии
Та же проблема. Хелп!
я в итоге отказался от Conditional Fields, и сделал с помощью #state
тем более, что модуль делает то же самое, но он криво написанный.
То есть тупо пропадает? Или в редактировании формы оно есть, а при отображении нет? Если второе, тогда в настройках отображения сделайте его видимым. И да, модуль Conditional fields кривоват.
ага
сначала есть - после сохранения нет, это как фокус с кроликом в шляпе
не поле пропадает, а введенное в него значение
да, соглашусь.
У меня не получилось добиться результата. Подскажите что я делаю не так?
1. Создаю (Field UI) к примеру два поля field_1 и field_2
2. В файле template.php пишу:
$form['field_1'] = array(
'#type' => 'checkbox',
'#title' => 'Lable 1'
);
$form['field_2'] = array(
'#type' => 'select',
'#title' => 'Lable 2',
'#states' => array(
'visible' => array(
'input[name="field_1"]' => array('checked' => TRUE)
)
)
);
return $form;
}
Нашел тему http://www.drupal.ru/node/104554
Пробую как описано в ней.
У меня поле field_2 - селект-лист, который должен отобразиться после того как отмечен чекбокс поля field_1
$form['field_2']['#states'] = array(
'visible' => array(
'input[name="field_1[und]"]' => array('checked' => TRUE,),
),
);
}
name="field_1[und]" беру из кода страницы. В коде у меня field_1[und][Название лэйбла по русски] но я пробовал в функции указывать оба варианта.
Всеровно сразу отображается два поля и при клике по field_1 не происходит никаких изменений.
<?php
$form['field_которое_скрывается']['#states'] = array(
function ИмяМодуля_form_alter(&$form, &$form_state, $form_id){
if(
$form_id == "ай_ди_формы"){'invisible' => array(
'input[name="field_которое_влияет_на_скрытие"]' => array('checked' => TRUE)
)
);
}
?>}
Непонятно только "ИмяМодуля". У меня поля созданы при помощи Field UI.
field_1[und][1] - указать выбранный чекбокс
и обратите внимание на
field_1[und][1] - указать выбранный чекбокс
и обратите внимание на
как то так ваш варик должен быть
вы пишете код в
template.php
в моем случае код в модулеЧто то не получается. Объясните пожалуйста из каких составляющих формируется название функции?
в вашем случае вы все правильно делаете, вызываете хук из template.php
в моем случае, это модуль с вызовом хука и дальнейшей проверкой id формы.
во сути действия одни и те же только разными способами.
у вас из template.php вообще вызов функции идет? вы сбрасываете кеш, после манипуляций с template.php?
напишите для проверки в template.php(при условии включенного модуля Devel)
<?php
function THEMENAME_form_alter(&$form, &$form_state, $form_id) {
dpm($form);
}
?>
сбросьте кеш, будет результат - значит вы на правильном пути.
p.s. THEMENAME - это имя вашей темы
Разобрался, спасибо.
Но пришлось записать именно field_1[und][Название лэйбла по русски]. По другому никак не заработало.
вот и чудненько