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

Ber*_*ing 2 php drupal content-management-system

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

我需要听什么钩子,如何知道表格的名称?

在这种情况下,我甚至不确定在哪里打印dsm以获取有关此表单的更多信息.有没有像hook_nodeapi这样的表格,我可以给我更多关于表格的信息?

ans*_*ung 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';
  }
}
Run Code Online (Sandbox Code Playgroud)

当然,您需要function my_additional_submit_handler在自定义模块中跟进,以便完成任何事情.

  • 当然,您的提交处理程序应该从$ form_state ['values']读取,就像任何其他form_submit函数一样.表单提交后,$ form将不会返回任何有用的内容:) (2认同)