2011-12-22 13 views
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']++; 
} 

答えて

関連する問題