php - 如何覆盖 drupal 7 中的 Web 表单提交功能?

标签 php drupal drupal-7 drupal-fapi

我有一个包含姓名和电子邮件字段的网络表单。提交表单后,姓名和电子邮件应存储在数据库中,并且应开始下载 PDF 文件。

我的问题是如何覆盖网络表单的提交功能,以便我可以在之后添加额外的功能?

最佳答案

您需要使用 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 AFTER 表单的默认回调函数。

要使您的新回调函数在表单的默认回调函数之前被调用,请使用以下代码代替上面给出的代码:

array_unshift($form['#submit'], 'YOUR_SUBMISSION_CALLBACK_FUNCTION');

要取消表单的默认回调函数并强制它使用您的函数,请使用以下代码

$form['#submit'] = array('YOUR_SUBMISSION_CALLBACK_FUNCTION');

希望这对您有所帮助。

关于php - 如何覆盖 drupal 7 中的 Web 表单提交功能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16559470/

相关文章:

php - PHP 的代码覆盖率工具

php - REST 服务和内存缓存

php - 当暴露的过滤器被激活时,如何从 Drupal View 中删除最新内容?

git - 如何在导入期间修复或调查此 AcquiaDevDesktop 错误

api - Drupal 7 编程与 Drupal 6 相比有哪些变化?

javascript - 针对 Drupal 7 中的特定错误

php - 在 php 中循环时显示输出

php - 我想要 count 的值并想在其他查询中使用它。这怎么可能?

Drupal 自动 URL 别名删除单词

list - 如何使用 theme_item_list() 在 drupal7 中实现多级列表?