J'ai créé un type de contenu nommé "menu principal". J'ai quelques listes sélectionnées qui dépendent les unes des autres. Je voulais afficher une liste différente lorsque différentes cases à cocher sont sélectionnées. J'ai compris que je devais utiliser Ajax pour modifier le formulaire afin d'y parvenir, mais quelqu'un peut-il me dire comment utiliser Ajax avec hook_form_alter?
L'identifiant de formulaire du formulaire que je suis censé modifier est "main_menu_node_form". Lorsque j'essaie d'accéder à ce formulaire en utilisant hook_form_alter()
et d'ajouter la #ajax
propriété des champs du formulaire, il semble que je ne suis pas en mesure de le faire car les champs sont déjà rendus avant que le handle ne soit transmis à hook_form_alter()
. Quelqu'un peut-il m'aider à résoudre ce problème?
Remarque: J'ai créé le type de contenu à l'aide de 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()
(comme vous l'avez écrit, "Quand j'essaie d'accéder à ce formulaire en utilisant le formulaire alter [… […]").
main_menu_content_type_form_main_menu_node_form_alter_callback()
; si cette fonction contient un code incorrect, les utilisateurs ne peuvent pas signaler les modifications que vous devez apporter à votre code pour le faire fonctionner.