0

我创建了一个包含hook_submit函数的自定义模块。此时是否可以加载另一个页面/表单而无需进行重定向?

原因在提交函数的逻辑范围内,有一些变量我想传递到另一个页面,但它由不适合发布/获取数据的复杂数据结构(对象、数组等)组成。

谢谢

4

2 回答 2

0

hook_submit() 是表单处理链的末端。完成任务后,您有两个选择:重定向(通过 drupal_goto() 或返回 $form["#redirect'])到另一个页面或什么都不做,在这种情况下,您单击提交按钮的页面将是重新加载。

您有几个选项可以将数据传递到重定向目标 $_SESSION 和最常用的数据库。您还可以选择在 javascript 中的 Drupal.settings 对象中设置复杂的数据值,但在这种情况下,如果您的最终目标是通过 PHP 解析该信息,那么这对您来说并不重要。

如果没有关于您的最终目标的具体信息,很难提供具体建议,但是假设使用 $_SESSION 或数据库作为缓存不是您的选择,您可以考虑查看核心 FAPI 和 ctools 各自的 multi 实现- 部分表格以获得额外指导。

于 2012-10-12T05:54:28.693 回答
0

在 Drupal 中,您可以确定提交表单的路径。为此,您可以使用

$form['#action'] = url("<another page>") ;

在您的表单中,提交后它将带您到另一个页面,您仍然会从该表单中获取所有帖子值。用于$_POST['<element_name>']进一步的后值检索。

希望这会有所帮助。

于 2012-10-12T17:51:17.680 回答