在使用Drupal 7呈现之前填充表单中的textarea
问题描述:
我是编写Drupal表单的新手,并且在整个过程形式中似乎是最简单的事情,即在呈现之前将数据放在表单上的textarea中。在使用Drupal 7呈现之前填充表单中的textarea
- 我使用Drupal的7
- 我模块中的所有必要的文件:即.module和.info ..
-
我用所有这些功能在我
hook_submit()
但无济于事。Form_state['values'][$myElement=]= $myText; Form_state[$myElement=]= $myText; form_set_value($form[$myElement], t('$myText'), $form_state);
我刷新缓存的每一个尝试之前:
似乎没有任何工作。以下是在我提交处理程序:
mForm_submit(){
//$form_state['values']['sku_output_fieldset']['sku_output'] = t('$gen_sku_txt');
//$form_state['gen_sku']['sku_output_fieldset']['sku_output'] = t('$gen_sku_txt');
//$form['sku_output_fieldset']['sku_output']['#value'] = t('$gen_sku_txt');
//form_set_value($form['sku_output_fieldset']['sku_output'], t('$gen_sku_txt'), $form_state);
//form_set_value($form['sku_output'], t('$gen_sku_txt'), $form_state);
//form_set_value($form['sku_output'], array('rgb' => '123'), $form_state);
//form_set_value($form['sku_output_fieldset']['sku_output'], array('#default_value' => '123'), $form_state);
//form_set_value($form['sku_output_fieldset']['sku_output'], array('#value' => '123'), $form_state);
//form_set_value($form['sku_output_fieldset']['sku_output'], array('value' => '123'), $form_state);
//form_set_value($form['sku_output_fieldset']['sku_output'], array('default_value' => '123'), $form_state);
$form_state['rebuild'] = TRUE;
}
所有注释代码,是我曾尝试和没有工作。
答
如果你想在渲染前改变它,你不应该在提交函数中。
您应该使用hook_form_alter(&$form, &$form_state, $form_id)传入的$form
是您可以用来编辑表单的变量。
答
您是在用Drupal 7 Form API构建表单吗?这就是我插入默认文本到一个Drupal形式的文字区域:
$form['formname_fieldname'] = array(
'#default_value' => t('Some default text'),
'#title' => t('Field Title'),
'#type' => 'textarea',
'#required' => FALSE,
'#rows' => 10,
);
你的textarea将与“一些默认的文本”
+0
我已经做了,它工作正常。但我需要做的是在点击提交按钮后更改文本。我的想法是,我从表单中的其他元素获取值,然后将它们附加到该textarea中的值并显示它。 – 2011-03-16 03:22:30
什么,我需要做的是后提交更改文本预先填充按钮被点击。我的想法是,我从表单中的其他元素获取值,然后将它们附加到该textarea中的值并显示它。所以我的猜测是,使用hook_form_alter会改变内容,每次我渲染的形式..不知何故似乎这样一个简单的任务矫枉过正...但我会给它一个镜头 – 2011-03-16 03:26:25