我正在编写一个作用于另一个模块的模块。另一个模块的提交表单位于 admin/settings/image-toolkit。提交表单后,我的模块需要响应该事件。
我需要监听什么钩子(Hook)以及我如何知道表单的名称?
在这种情况下,我什至不确定在哪里打印 dsm 以获得有关此表格的更多信息。有没有类似 hook_nodeapi 的东西,但对于表单我可以给我更多关于表单的信息?
最佳答案
所有表单都带有一个 $form[#submit]
属性,该属性描述了表单提交时运行的函数。默认值是 formname_submit,当然,但您只需要向该数组添加新的即可。
因此,您应该使用 hook_form_alter 并将另一个项目添加到 $form['#submit'] 数组。
您可以使用 Devel 模块或通过在页面本身的 HTML 中查找来轻松获取表单 ID。 (如果你采取后一种方式,连字符应该被翻译成下划线)
我在我的安装中获得了该表单的 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
来跟进,以便任何事情发生。
关于php - 听表单提交的钩子(Hook)是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3561894/