Drupal 6 - 无需重定向即可加载其他内容

时间:2012-10-11 04:44:37

标签: php drupal drupal-6

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

在提交函数的逻辑范围内,有一些我希望传递给另一个页面的变量,但它包含复杂的数据结构(对象,数组等),它们不适合发布/获取数据

由于

2 个答案:

答案 0 :(得分:0)

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

您可以使用多种方法将数据传递到重定向目标,$ _SESSION和最常用的数据库。您还可以选择在javascript中的Drupal.settings对象中设置复杂数据值,但是在这个实例中,如果您的最终目标是通过PHP解析该信息,则不会对您产生太大影响。

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

答案 1 :(得分:0)

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

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

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

希望这会有所帮助。