drupal - 表单提交后自定义重定向

标签 drupal forms redirect hook submit

我有一个表格,这是一个默认的 block 管理表格。这是人们用来编辑 block 内容、可见性等的标准表单。当用户保存表单时,drupal 会将用户重定向到 block 管理页面。

现在,我想将用户带到另一个页面,例如。提交区 block 管理表单后的主页。有几种方法可以实现这一点,但 drupal 建议使用 hook_alter_form 方法,如 here 所述。

我编写了一个名为“formdest”的 .module 文件,其中包含以下内容:

function formdest_form_alter(&$form, $form_state, $form_id) {
switch ($form_id) {
case 'block-admin-configure':
    $form_state['redirect'] = '/home';
  break;
}
}

以及随附的 .info 文件:
; $Id: custom.info,v 1.0 2011/01/01 21:55:00 author Exp $
name = formdest
description = form destination
package = Other
core = 6.x

version = "6.x"
project = "custom"
datestamp = "1229018427"

我的自定义模块显示在模块列表中,我可以启用它,从而激活重定向。但是当我测试它时,drupal 仍然将我带到 block 管理页面而不是主页..

Firebug 或系统日志中都没有错误消息,所以我有点无能为力。各位编码大神有什么想法吗?

最佳答案

在 hook_form_alter() 中添加一个提交处理程序,并在那里设置覆盖。

function mymodule_form_alter(&$form, &$form_state, $form_id) {
  if ($form_id == 'my_form') {
     $form['#submit'][] = 'my_submit_handler';
  }
}

function my_submit_handler(&$form, &$form_state) {
  $form_state['redirect'] = 'home';
}

关于drupal - 表单提交后自定义重定向,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5908692/

相关文章:

css - 如何将 css 规则存储在 drupal 的数据库中?

图像 id 作为数字导致 W3C 错误

javascript - 使用 Drupal_add_js/Jquery 评估 Node 时未定义

python - 属性错误 : 'EditForm' object has no attribute 'validate_on_submit'

Jsf 重定向到新窗口

java - 如何将 Spring 请求重定向到另一个应用程序?

Drupal:以编程方式将工作台状态从草稿更改为已发布

php - 如何在数据进入 mysql 数据库的同时创建表单而不刷新页面?

javascript - 如果输入字段为空,请设置特定值

javascript - 使用 chrome.experimental.webRequest API 更改加载的文件?