2017-04-25 13 views
0

私は2つの手順でカスタムフォームを作成します。ユーザーが手順2の[戻る]ボタンをクリックすると、手順1にリダイレクトして最初に入力したデータが表示されます。これは私のコードDrupal 7のマルチステップカスタムフォームの戻るボタンを作成する方法は?

function example_form($form, &$form_state) { 

    if (!empty($form_state['step_num'])) { 
    return example_step_two($form, $form_state); 
    } 

    $form_state['step_num'] = 1; 

    $form['title'] = array(
    '#type' => 'textfield', 
    '#title' => t('Title'), 
    '#required' => TRUE, 
); 

    $form['next'] = array(
    '#type' => 'submit', 
    '#value' => 'Next', 
    '#submit' => array('example_form_submit'), 
); 

    return $form; 
} 

であり、これは

function orders_order_form_submit($form, &$form_state) { 

    $form_state['page_values']['1'] = $form_state['values']; 

    if (!empty($form_state['page_values'][2])) { 
    $form_state['values'] = $form_state['page_values'][2]; 
    } 

    $form_state['step_number'] = 2; 
    $form_state['rebuild'] = TRUE; 
} 

と、これは

function example_form_step_two($form, &$form_state){ 

    $form['title2'] = array(
    '#type' => 'textfield', 
    '#title' => t('Title2'), 
    '#required' => TRUE, 
); 

    $form['back'] = array(
    '#type' => 'submit', 
    '#value' => t('Back'), 
    '#submit' => array('example_form_step_two_back'), 
); 

    $form['submit'] = array(
    '#type' => 'submit', 
    '#value' => 'Submit', 
    '#submit' => array('example_form_step_two_submit'), 
); 

    return $form; 
} 

私のフォームのステップ2であり、これはバックボタンの問題機能である

私の提出機能です
function example_form_step_two_back($form, &$form_state){ 

    $form_state['rebuild'] = TRUE; 
} 

答えて

0

y OUは、それが空ではありませんされていない場合、'step_num'は2でexample_form()あるかどうかをテストする必要があります。

$form_state['step_num'] = 1; 

'title'の前にユーザーが入力した値を表示するには:

if ($form_state['step_num'] == 2) { 
    return example_step_two($form, $form_state); 
} 

次にexample_form_step_two_back()に、あなたが追加する必要がありますその値が存在する場合に設定される'#default_value'要素を追加する必要があります。

関連する問題