老葛的Drupal培训班 Think in Drupal
图10-7 多步表单的初始步
当我们点击“Next”按钮时,Drupal处理本表单的方式和其它表单一样:构建表单,调用验证函数,调用提交函数。但是如果我们还没有处于表单的最后一步,那么提交函数将会简单得返回。Drupal将会注意到存储箱$form_state['storage']中存放的数值,所以它将会再次调用表单构建函数,这次带了一个$form_state的拷贝。(我们也可以设置$form_state['rebuild']来进行重新构建,但是当$form_state['storage']中有值时就不再需要设置它了。)再次调用表单构建函数,并将$form_state传递给我们模块的formwizard_multiform(),该函数将通过查看$form_state['storage']['step']的值,来判定我们所处的步骤并构建相应的表单。我们将得到如图10-8所示的表单。
图10-8 多步表单的第二步