听一个表单提交的钩子是什么?

时间:2010-08-24 23:48:50

标签: php drupal content-management-system

我正在编写一个作用于另一个模块的模块。另一个模块的提交表单位于admin / settings / image-toolkit。提交表单后,我的模块需要响应该事件。

我需要听哪个钩子以及如何知道表格的名称?

在这种情况下,我甚至不确定在哪里打印dsm以获取有关此表单的更多信息。是否有类似hook_nodeapi的东西,但对于表格,我可以给我更多关于表格的信息?

1 个答案:

答案 0 :(得分:10)

所有表单都附带$form[#submit]属性,该属性描述表单提交时运行的函数。当然,缺省值是formname_submit,但您只需要向该数组添加新的。

所以,你应该使用hook_form_alter并在$ form ['#submit']数组中添加另一个项目。

您可以使用Devel模块轻松获取表单ID,也可以在页面的HTML中查找。 (如果采用后一种方式,连字符应翻译成下划线)

我在我的安装上获得该表单的system_image_toolkit_settings,但这可能取决于您正在使用的图像库(我使用GD)。

尽管如此,我会承认我对于你想要添加到那个处理程序的提交程序有点不知所措; p

编辑:

回复OP评论的一些示例代码:

你基本上要找的是:(来自http://drupal.org/node/144132

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

当然,您需要在自定义模块中使用function my_additional_submit_handler进行跟进,以确保发生任何事情。