我正在使用Drupal 7并且必须使用Form Maker(https://drupal.org/project/drupal-form)模块。由于它不是一个正常的形式,我不知道如何做挂钩,Drupal form submission Q / A解释正常形式。
数据库内表格中“提交后的操作”的可用选项包括:
有什么方法可以处理表单提交吗?例如:如果使用(例如)选项4,有没有办法在我指定的URL中引用提交表单的表单状态? (或者通过了解+引用提交的记录来恢复该数据的任何机制。)
BTW我是一个完整的drupal n00b,并且无法在Form Maker doc中找到关于特殊问题的R(因此我可以遵循RTM原则)。
答案 0 :(得分:0)
看起来这个模块仍然使用表单API,因此您应该只能使用hook_form_alter()来修改这些表单。我确信这些表单的ID有某种命名约定,这允许您将更改专门应用于表单制作者表单。
如果您需要自定义表单提交的处理,则可以使用#submit表单属性包含您自己的提交处理程序。注意:链接中的示例将提交处理程序添加到表单中的字段,但在大多数情况下,我将提交处理程序添加到表单数组本身。 (即$form['#submit'] = array("submit_callback")
)
编辑以回应评论
调用hook_form_alter()时,不需要引用form_id。相反,你可以全局调用它,这将导致drupal在每个表单上调用你的钩子。从我提供的文档链接中可以看到,$form_id
被传递给函数,您可以使用它来有条件地修改表单。请查看文档页面上的注释以获取用法示例。
除非使用第三方服务嵌入这些表单,否则如果此模块实际上是合法的,则它将通过表单API挂钩其表单。实现hook_form_alter(),并打印传递给函数的form_id。转到其中包含此表单之一的页面,然后查看要打印的内容。
(另外,[form_id] _form_alter()不是在特定表单上调用此挂钩的正确语法。应该是hook_form_ [form_id] _alter(),其中hook是您的模块名称。)