2
私は多段階フォームを作成しています。誤ってページを更新した場合、ユーザーは格納された情報を失いたくはありません。再現するステップ:Drupal 7、フォームが再構築されない
1) Press 'ok'-button
2) var_dump($form_state['multistep']['step']) == 2
3) Refresh page
4) var_dump($form_state['multistep']['step']) still == 2
5) Press 'ok'-button
6) var_dump($form_state['multistep']['step']) == 3
7) Refresh page
8) var_dump($form_state['multistep']['step']) == 2 rather than 3
ここで私が気付いていないいくつかのDrupalフォームのメカニックの問題がなければなりません。なぜこれが起こるのか誰も説明できますか?以下のコード例。
function multistep_test_form($form, &$form_state) {
if(!isset($form_state['multistep']['step'])) {
$form_state['multistep']['step'] = 1;
} else {
var_dump($form_state['multistep']['step']);
}
$form['submit'] = array(
'#type' => 'submit',
'#value' => 'ok'
);
return $form;
}
function multistep_test_form_submit($form, &$form_state) {
$form_state['rebuild'] = TRUE;
$form_state['multistep']['step']++;
}