我的需要是向Webform提供的组件“选择选项”(提示为coeff
)中添加一个新的自定义字段“ select
”。
我使用hook_form_alter
创建我的自定义字段:
function my_module_form_alter(&$form, &$form_state, $form_id){
if ($form_id == 'webform_component_edit_form') {
if ($form['type']['#value'] == 'select') {
$form['coeff'] = array(
'#type' => 'textfield',
'#title' => t('Coefficient'),
'#default_value' => '1',
'#description' => t('Set coefficient value for this question.'),
'#size' => 2,
'#maxlength' => 2,
);
}
}
}
这样就可以了。当我编辑“选择选项”组件时,可以看到我的字段。但是我的值没有保存在此字段中。
我的问题是:
是否已在此表单中添加了一个提交回调以保存此自定义字段?如果是,它是如何工作的?
如果我想做一个循环来提出很多问题,该怎么办?我知道我必须构建一个节点对象并最终调用node_save()...,但是我必须在其中将此自定义字段的值放入“ coeff
”?
如果您没有答案,那还不错,请给我提示。
非常感谢。
答案 0 :(得分:1)
您需要将字段名称更改为$ form ['extra'] ['coeff'],并更改默认值以显示保存的字段:
if ($form_id == 'webform_component_edit_form') {
if ($form['type']['#value'] == 'select') {
$form['extra']['coeff'] = array(
'#type' => 'textfield',
'#title' => t('Coefficient'),
'#default_value' => $form['#node']->webform['components'][1]['extra']['coeff'],
'#description' => t('Set coefficient value for this question.'),
'#size' => 2,
'#maxlength' => 2,
);
}
}