在使用Drupal 7渲染之前填充表单中的textarea

时间:2011-02-27 19:17:10

标签: drupal drupal-7

我是编写Drupal表单的新手,并且在整个流程形式中最简单的方面遇到麻烦,即在渲染之前将数据放在表单上的textarea中。

  • 我正在使用drupal 7
  • 我在模块中有所有必要的文件:ie .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;
}

所有注释代码,是我尝试过但没有用的。

2 个答案:

答案 0 :(得分:2)

您是否使用Drupal 7 Form API构建表单?这就是我以Drupal格式将默认文本插入textarea的方法:

$form['formname_fieldname'] = array(
  '#default_value' => t('Some default text'),
  '#title' => t('Field Title'),
  '#type' => 'textarea',
  '#required' => FALSE,
  '#rows' => 10,
);

您的textarea将预填充“某些默认文字”

答案 1 :(得分:0)

如果要在渲染之前更改它,则不应该有提交功能。

您应该使用hook_form_alter(&$form, &$form_state, $form_id),其中传递的$form是您可以用来编辑表单的变量。