假如一个内容类型有很多很多个表单元素,那么我们就应该考虑用多步表单了。
有个模块,http://drupal.org/project/multistep ,这个模块信赖于CCK的Fieldgroup,用起来也挺方便。
但是如何用程序创建多步表单呢?下面用一个简单的例子来演示一下。这个例子有二步,第一步包含title,body,第二步是一个textarea,可以输入一
些额外信息。
drupal通过 $form_state['storage']['step'] 来检测多步表单。
第一步,我们构造表单,先检测$form_state['storage']['step'],如果没有值,显示第一页,如果有,则显示第二页。
<?php
/**
* Implement hook_form().
*/
function multistep_form(&$node, $form_state) {
// Initial step: display title and body fields.
if (!isset($form_state['storage']['step'])) {
$form['title'] = array(
'#title' => t('Title'),
'#type' => 'textfield',
'#required' => TRUE,
'#default_value' => isset($form_state['storage']['title']) ? $form_state['storage']['title'] : $node->title,
);