我在Drupal 7 - FAPI中創建一個多步驟窗體。Drupal 7 - FAPI多步驟窗體 - 清除form_state值 - 添加onther選項
在主要的hook_form()中,重定向到不同的步驟。
function hook_form($form, &$form_state) {
if (empty($form_state['storage']['step'])) {
$form_state['storage']['step'] = 0;
}
switch($form_state['storage']['step']) {
case 0:
$form= _step_0($form, $form_state);
break;
case 1:
$form = _step_1($form, $form_state);
break;
case 2:
$form = _step_2($form, $form_state);
break;
case 3:
$form = _step_3($form, $form_state);
break;
case 99:
$form = _step_end($form, $form_state);
break;
}
return $form;
}
在步驟2 I有一個可選的按鈕「添加onther」這節省了form_values成存儲和重新加載相同的形式(步驟2)。但是當它在幾秒鐘內重新載入這個表單時。以前的表單值被表示爲默認表單值,而不是空白(新)表單,這是需要的。
function inschrijven_form_submit($form, &$form_state) {
switch ($form_state['storage']['step']) {
case 0:
switch($form_state['values']['op']) {
case 'Next' :
....
$form_state['storage']['step'] = 1;
break;
}
break;
case 1:
switch($form_state['values']['op']) {
case 'Next' :
....
$form_state['storage']['step'] = 2;
break;
}
break;
case 2:
switch($form_state['values']['op']) {
case 'Next' :
....
$form_state['storage']['step'] = 3;
break;
case 'Add another' :
$form_state['rebuild'] = TRUE;
....
$form_state['storage']['step'] = 2;
return;
break;
.....
}
}
我已嘗試在每次提交後手動清除form_state ['values'],但沒有成功。誰可以實現添加其他功能的多步驟?
我試過你的解決方案張貼在http://drupal.stackexchange.com/questions/33740/drupal-7-fapi-multistep-form-with-add-another-option/33804#33804這給了我想要的結果。 –