在使用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是您可以用来编辑表单的变量。

+0

什么,我需要做的是后提交更改文本预先填充按钮被点击。我的想法是,我从表单中的其他元素获取值,然后将它们附加到该textarea中的值并显示它。所以我的猜测是,使用hook_form_alter会改变内容,每次我渲染的形式..不知何故似乎这样一个简单的任务矫枉过正...但我会给它一个镜头 – 2011-03-16 03:26:25

您是在用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