Eu criei um tipo de conteúdo chamado "menu principal". Tenho poucas listas de seleção que dependem umas das outras. Eu queria exibir uma lista diferente quando caixas de seleção diferentes são selecionadas. Eu descobri que preciso usar o Ajax para editar o formulário para conseguir isso, mas alguém pode me dizer como usar o Ajax com hook_form_alter?
O ID do formulário que devo editar é "main_menu_node_form". Quando tento acessar esse formulário usando hook_form_alter()
e adiciono a #ajax
propriedade dos campos do formulário, parece que não consigo fazer isso, pois os campos já são renderizados antes da passagem do identificador hook_form_alter()
. Alguém por favor pode me ajudar a resolver isso?
Nota: Criei o tipo de conteúdo usando 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()
(como você escreveu: "Quando eu tento acessar este formulário usando o formulário alter [… [...]").
main_menu_content_type_form_main_menu_node_form_alter_callback()
; se essa função contiver código incorreto, os usuários não poderão relatar nenhuma alteração que você deva fazer no seu código para fazê-lo funcionar.