Drupal - Webforms as Block - 修改动作

时间:2012-08-24 15:18:10

标签: drupal drupal-webform

我正在使用Drupal 7.15,并将Webform设置作为一个块包含在Contact页面(基本页面)中。基本联系页面具有可编辑的侧边栏内容,然后Webform块作为主要内容。我遇到的问题是提交Webform会转到自己的别名'general-inqueries',而不是联系我们别名'contact-us'。我希望它返回基本页面联系我们,并提供任何验证错误和/或确认消息。

表单行为似乎总是Webform别名,但是当我尝试将别名更改为基本页面联系我们别名(contact-us)时,它说这个别名已经在使用中。

如果没有为错误或成功确认创建单独的页面,如何修改操作以返回原始页面并提交任何消息?我不希望我们JS在事后设置表单操作。如果错误/成功消息没有传递给它,那对我来说甚至可能都没有帮助。

如果你想看看,这是测试服务器:

http://69.160.59.20/contact-us

非常感谢任何和所有帮助!

全部谢谢

1 个答案:

答案 0 :(得分:0)

可以使用form_alter挂钩设置表单操作。类似的东西:

my_module_form_alter($form, $form_state, $form_id) {
  if ($form_id == 'webform_id_form') {
    $form['#action'] = url('comment/reply/'. $edit['nid']);
  }
}

如果您使用的是Drupal 7,请跳过表单ID检查并尝试:

my_module_form_form_id_alter($form, $form_state) {
}

如果你不知道如何找到表单id,只需使用带有print语句的上述函数:

my_module_form_alter($form, $form_state, $form_id) {
  print($form_id);
}

并且表单ID将是包含webform一词的表单。

有关表单api的更多详细信息: http://api.drupal.org/api/drupal/developer%21topics%21forms_api_reference.html/7#action