Ich benutze drupal_get_form('event_signup_form')
, um mein benutzerdefiniertes Formular in einen Block einzubetten. Das Formular wird wie beabsichtigt gerendert, aber das Absenden des Formulars löst nichts aus.
Die Formularfunktion selbst wird aufgerufen event_signup_form($form, &$form_state)
und die Submit-Funktion wird aufgerufen, event_signup_form_submit($form, &$form_state)
aber nicht aufgerufen.
Ich benutze hook_block_view , um das Formular anzuzeigen :
function event_block_view($delta = '') {
$blocks = array();
if ($delta ...) {
$blocks['content'] = drupal_render(drupal_get_form('event_signup_form'));
}
}
Ich habe es geschafft, das zum Laufen zu bringen - hier ist, wie (Stummel):
function hook_block_view($delta = '') {
$blocks['content'] = drupal_render(drupal_get_form('event_signup_form'));
}
function event_signup_form() {
// Register form submit handler, same goes for validation handler
$form['#submit'][] = 'event_signup_form_submit';
return $form;
}
function event_signup_form_submit($form, &$form_state) {
// This is now triggered
}
hook_form()
. Siehe Antwort von Francisco Luz für die richtige Antwort.Ich wette, das
$form['#submit'][] = 'event_signup_form_submit';
ist der Täter. Sie legen dies nur fest, wenn Sie einen zusätzlichen Submission-Handler wünschen.Dies ist ein funktionierender Beispielcode.
quelle