Ich habe einen Inhaltstyp mit dem Namen "Hauptmenü" erstellt. Ich habe wenige Auswahllisten, die voneinander abhängen. Ich wollte eine andere Liste anzeigen, wenn verschiedene Kontrollkästchen aktiviert sind. Ich habe herausgefunden, dass ich Ajax verwenden muss, um das Formular zu bearbeiten, aber kann mir jemand sagen, wie man Ajax mit hook_form_alter verwendet?
Die Formular-ID des Formulars, das ich bearbeiten soll, lautet "main_menu_node_form". Wenn ich versuche, mit diesem Formular auf dieses Formular zuzugreifen hook_form_alter()
und die #ajax
Eigenschaft der Formularfelder hinzuzufügen , kann ich dies anscheinend nicht, da die Felder bereits gerendert wurden, bevor das Handle übergeben wird hook_form_alter()
. Kann mir bitte jemand helfen, das zu lösen?
Hinweis: Ich habe den Inhaltstyp mit erstellt 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()
(wie Sie geschrieben haben: "Wenn ich versuche, mit dem Formular alter [… […] auf dieses Formular zuzugreifen").
main_menu_content_type_form_main_menu_node_form_alter_callback()
; Wenn diese Funktion falschen Code enthält, können Benutzer keine Änderungen melden, die Sie an Ihrem Code vornehmen sollten, damit er funktioniert.