You are here

跨页面表单(4)

老葛的Drupal培训班 Think in Drupal

我们有证据证明验证函数的运行,因为它通过调用drupal_set_message()在屏幕上显示了一条消息。而且我们字段集的标题和文本输入框的描述也被恰当的设置了,这意味着用户到达了第2步。让我们继续。在如图10-9所示的表单中,我们将输入最后一个成分。
 
10-9 多步表单的最后一步
 
    注意,在第3步,我们将提交按钮的名字从“Next”改为了“Submit”。还有,当处理完成时,提交处理器可以将用户重定向一个新页面。现在,当我们点击提交按钮时,我们的提交处理器将识别出这就是第四步,与前面几步的简单返回有所不同,它将对数据进行处理。在这个例子中,我们仅仅调用了drupal_set_message(),这将在Drupal提供的下一个页面中显示用户输入的信息,并将用户重定向到formwizard/thankyou。结果页面如图10-10所示。
 
10-10 多步表单的提交处理器已经运行,而用户已被重定向到了formwizard/thankyou
 
    在前面的例子中,我们向你展示了多步表单工作原理的基本轮廓。除了在$form_state中使用存储箱以外,你的模块还可以将数据保存到隐藏域中从而将其传到下一步,你也可以在你的提交处理器中将其保存到数据库中,或者使用表单ID作为键将其保存到全局变量$_SESSION中。需要理解的重点是,表单构建函数将被继续调用,这是因为填充了$form_state['storage'],通过使用前面的方式增加$form_state['storage']['step'],验证和提交函数就能够聪明的决定要做什么了。

Drupal版本:

评论