我的表单功能
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']
在"重置"之后包含一个旧的字段值。按下,但实际上表单已更改为默认状态。
想法,建议?
答案 0 :(得分:1)
system_settings_form
默认添加重置按钮,因此您不必这样做。此外,它会在按下时自动恢复默认值。此外,我认为您不需要其他提交函数,因为system_settings_form
会将值保存在数据库的变量表中。
编辑:显然在D7中他们删除了该功能