Php Drupal 7:如何使用system_settings_form()保存表单值?
我想为我正在构建的模块设置一个简单的设置表单 目前,我只有一个字段集和一个复选框:Php Drupal 7:如何使用system_settings_form()保存表单值?,php,drupal,drupal-7,Php,Drupal,Drupal 7,我想为我正在构建的模块设置一个简单的设置表单 目前,我只有一个字段集和一个复选框: function my_module_settings() { $form = array(); $config = my_module_default_settings(); $form['my_module_settings'] = [ '#type' => 'fieldset', '#title' => t('Script options'), '#col
function my_module_settings() {
$form = array();
$config = my_module_default_settings();
$form['my_module_settings'] = [
'#type' => 'fieldset',
'#title' => t('Script options'),
'#collapsible' => TRUE,
'#collapsed' => TRUE,
'#group' => 'script_config',
];
$form['my_module_settings']['my_module_setting_scripts'] = array(
'script_on' => array(
'#type' => 'checkbox',
'#title' => t('Enable Scripts'),
'#default_value' => !empty($config['script_on']) ? $config['script_on'] : FALSE,
'#group' => 'script_config',
),
);
return system_settings_form($form);
}
这会进行渲染,但选中复选框并单击“保存”实际上不会在表单中保存任何内容
如何确保表单数据保存?使用
系统设置\u表单()
时,表单数据保存在{variable}
数据库表中,使用表单键命名变量
提交表单时,system\u settings\u表单
submit处理程序不会使用“script\u on”,而是使用表单键
此函数向表单添加提交处理程序和提交按钮
数组。submit函数使用保存表单中的所有数据
变量_set(),指向与表单中的键名相同的变量
数组。请注意,这意味着您通常应该为表单数组添加前缀
具有您的模块名称的键,以便在传入时它们是唯一的
变量_set()
这允许使用variable\u get('form\u key')
获取表单数据,这意味着在您的情况下,您可以直接映射以下内容:
'#default_value' => variable_get('my_module_setting_scripts', !!$config['script_on']);
。。这里使用三元表达式“快捷方式”(!!)作为回退设置