Заполните текстовую область в форме перед рендерингом с помощью Drupal 7 - PullRequest
1 голос
/ 27 февраля 2011

Я новичок в написании форм на Drupal, и у меня возникли проблемы с тем, что кажется самой простой вещью из всей формы процесса, а именно помещением данных в текстовое поле в форму перед рендерингом.

  • Я использую 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;
}

весь закомментированный код, это то, что я пробовал и не работал.

Ответы [ 2 ]

2 голосов
/ 28 февраля 2011

Вы создаете форму с помощью 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,
);

Ваша текстовая область будет предварительно заполнена текстом "Some default text"

0 голосов
/ 27 февраля 2011

Если вы хотите изменить его перед рендерингом, вам не следует включать функцию отправки.

Вам следует использовать hook_form_alter (& $ form, & $ form_state, $ form_id) , где передается $form - это переменная, которую вы можете использовать для редактирования формы.

...