Saya menggunakan drupal_get_form('event_signup_form')
untuk menanamkan formulir kustom saya di dalam blok. Formulir diberikan sebagaimana dimaksud, tetapi mengirimkan formulir tidak memicu apa pun.
Fungsi form itu sendiri dipanggil event_signup_form($form, &$form_state)
dan fungsi submit dipanggil event_signup_form_submit($form, &$form_state)
tetapi tidak dipanggil.
Saya menggunakan hook_block_view untuk menampilkan formulir:
function event_block_view($delta = '') {
$blocks = array();
if ($delta ...) {
$blocks['content'] = drupal_render(drupal_get_form('event_signup_form'));
}
}
Saya berhasil membuatnya berfungsi - berikut ini caranya (rintisan):
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()
. Lihat jawaban oleh Francisco Luz untuk jawaban yang benar.Taruhan saya
$form['#submit'][] = 'event_signup_form_submit';
adalah pelakunya. Anda menetapkan itu hanya jika Anda menginginkan penangan pengiriman tambahan.Ini adalah kode sampel yang berfungsi.
sumber