use*_*662 5 php drupal drupal-7 drupal-fapi
我有一个带有姓名和电子邮件字段的网络表单.提交表单时,名称和电子邮件应存储在数据库中,PDF文件应开始下载.
我的问题是如何覆盖Web表单的提交功能,以便我可以在那之后添加额外的功能?
Muh*_*eda 13
您需要使用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';
}
}
Run Code Online (Sandbox Code Playgroud)
上面的代码将在表单的默认回调函数YOUR_SUBMISSION_CALLBACK_FUNCTION 之后执行新的回调函数.
要使新的回调函数名为BEFORE表单的默认回调函数,请使用以下代码而不是上面给出的代码:
array_unshift($form['#submit'], 'YOUR_SUBMISSION_CALLBACK_FUNCTION');
Run Code Online (Sandbox Code Playgroud)
要取消表单的默认回调函数并强制它仅使用您的函数,请使用下面的代码
$form['#submit'] = array('YOUR_SUBMISSION_CALLBACK_FUNCTION');
Run Code Online (Sandbox Code Playgroud)
希望这有帮助.