Я создал тип контента с именем "главное меню". У меня есть несколько списков выбора, которые зависят друг от друга. Я хотел отобразить другой список, когда установлены разные флажки. Я понял, что мне нужно использовать Ajax для редактирования формы, чтобы добиться этого, но может кто-нибудь сказать мне, как использовать Ajax с hook_form_alter?
Идентификатор формы, которую я должен редактировать, - это main_menu_node_form. Когда я пытаюсь получить доступ к этой форме с помощью hook_form_alter()
и добавить #ajax
свойство полей формы, мне кажется, что я не могу этого сделать, поскольку поля уже отрисованы до того, как дескриптор будет передан hook_form_alter()
. Может кто-нибудь, пожалуйста, помогите мне решить эту проблему?
Примечание. Я создал тип контента с помощью hook_install()
.
function main_menu_content_type_form_main_menu_node_form_alter(&$form, &$form_state, $form_id) {
dpm($form);
dpm($form_state);
$form['field_mlnk'] = array(
'#ajax' => array(
'callback' => 'main_menu_content_type_form_main_menu_node_form_alter_callback',
'wrapper' => 'link-div',
'method' => 'replace',
'effect' => 'fade',
),
);
}
hook_form_alter()
(как вы писали: «Когда я пытаюсь получить доступ к этой форме, используя форму alter [… […]»).
main_menu_content_type_form_main_menu_node_form_alter_callback()
; если эта функция содержит неправильный код, пользователи не могут сообщать о любых изменениях, которые вы должны внести в свой код, чтобы заставить его работать.