【问题标题】:how to create multi step custom form back button in Drupal 7?如何在 Drupal 7 中创建多步自定义表单后退按钮?
【发布时间】:2017-04-25 20:39:56
【问题描述】:

我用 2 个步骤制作自定义表单,如果用户单击第 2 步表单上的后退按钮,我希望重定向到第 1 步并显示用户在开始时输入的数据。这是我的代码

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;
}

这是返回按钮的问题功能

function example_form_step_two_back($form, &$form_state){

  $form_state['rebuild'] = TRUE;
}

【问题讨论】:

    标签: drupal drupal-7 drupal-modules drupal-views drupal-8


    【解决方案1】:

    看来您需要测试'step_num'example_form() 中是否为2,而不是如果它不为空:

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

    那么在example_form_step_two_back()中,需要添加:

    $form_state['step_num'] = 1;
    

    要显示先前用户输入的 'title' 值,您必须向其中添加一个 '#default_value' 元素,如果该值存在,则设置该元素。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-04-12
      • 2013-09-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-02-09
      相关资源
      最近更新 更多