如何在Drupal 7中将表单设置为默认值后捕获默认值

时间:2011-11-15 21:45:30

标签: forms drupal

我的表单功能

function my_module_settings($form, $form_state) {   
   $form['my_textfield'] = array(
    '#type' => 'textfield',
    '#title' => 'Title',
    '#default_value' => variable_get('my_textfield', 'demo'),
    );

     $form['actions']['reset'] = array(
      '#type' => 'submit',
      '#value' => t('Reset to defaults'),
      '#submit' => array('my_module_settings_reset'),
    );  

    $form['#submit'][] = 'my_module_settings_submit';  
    return system_settings_form($form);
  }

  function my_module_settings_submit () {
    // Do something on sumbit.
  }



  // My reset function
  function my_module_settings_reset($form, &$form_state) {

  form_state_values_clean($form_state);

  // print_r($form_state['values']); 
  foreach ($form_state['values'] as $key => $value) {
    variable_del($key);
   }

   // I need to get $default right after "Reset" button pressed
   $var = send_default_values($default);

}

因此,my_module_settings($form, $form_state) - 是一个标准模块设置表单。我添加了#34;重置"按钮。我希望在提交后获得所有默认值的数组(在我的情况下为“演示”)并将其传递给send_default_values($default)函数。 $form_state['values']在"重置"之后包含一个旧的字段值。按下,但实际上表单已更改为默认状态。

想法,建议?

1 个答案:

答案 0 :(得分:1)

system_settings_form默认添加重置按钮,因此您不必这样做。此外,它会在按下时自动恢复默认值。此外,我认为您不需要其他提交函数,因为system_settings_form会将值保存在数据库的变量表中。

编辑:显然在D7中他们删除了该功能