我有一個名稱和電子郵件字段的網絡表單。當提交表格時,姓名和電子郵件應該存儲在數據庫中,並且應該開始下載PDF文件。如何覆蓋drupal7中的Web表單提交功能?
我的問題是如何重寫Web窗體的提交功能,以便我可以在那之後添加額外的功能?
我有一個名稱和電子郵件字段的網絡表單。當提交表格時,姓名和電子郵件應該存儲在數據庫中,並且應該開始下載PDF文件。如何覆蓋drupal7中的Web表單提交功能?
我的問題是如何重寫Web窗體的提交功能,以便我可以在那之後添加額外的功能?
您將需要創建一個自定義模塊hook_form_alter()實現。上述
function [YOUR_MODULE]_form_alter(&$form, &$form_state, $form_id)
{
if($form_id == "YOUR_FORM_ID")
{
// target the submit button and add a new submission callback routine to the form
$form['#submit'][] = 'YOUR_SUBMISSION_CALLBACK_FUNCTION';
}
}
的代碼將執行新的回調函數YOUR_SUBMISSION_CALLBACK_FUNCTION
後形式的默認回調函數。
爲了讓您的新的回調函數調用之前形式的默認回調函數,使用下面的代碼而不是上面給:
array_unshift($form['#submit'], 'YOUR_SUBMISSION_CALLBACK_FUNCTION');
要取消表單的默認回調函數,並迫使它使用功能ONLY,使用下面
$form['#submit'] = array('YOUR_SUBMISSION_CALLBACK_FUNCTION');
希望這有助於代碼。
看看hook_form_alter()和提交處理程序。這裏的例子:http://drupal.stackexchange.com/questions/18641/how-do-i-alter-the-form-submission-handler –