[РЕШЕНО] Обработка формы после submit

Главные вкладки

Аватар пользователя alaa alaa 27 ноября 2013 в 13:33

Здравствуйте!

Прошу ногами не пинать за банальный вопрос, с друпал столкнулся впервые.
Суть вопроса:
Пишу модуль с формой.
При submit формы сохраняются все введенные данные. Мне необходимо сделать, чтобы в элементе $form['queryq'] параметр '#default_value' принимал значение, которое я укажу, а не то, которое передается при submit. Надеюсь мой корявый язык понятен, и помощь дежурного экстрасенса не потребуется.

Если использовать
unset ($form_state['input']['queryq']);
То все работает, но я знаю, что input использовать неправильно. А
unset ($form_state['values']['queryq']);
не работает.

Подскажите, пожалуйста, как сделать правильно?
И вообще рад буду услышать любую критику касательно написания кода, оформления, может что делаю не так.. Пока не поздно переучиться.

function repa_page_form($form, &$form_state) {
  for ($j = 1; $j <= 2; $j++) {
    $q=(repa_load($j));
    $s[$j]= $q -> title;
  }
  $form['operator'] = array(
    '#type' => 'select',
    '#title' => t('Report number'),
    '#options' => array($s),
  );

  if (isset($form_state['values']['operator'])) {
    $q=repa_load($form_state['values']['operator']);
    $form['queryq'] = array(
      '#title' => (t('Query # ') .$form_state['values']['operator']),
      '#type' => 'textarea',
      '#description' =>  $q -> title,
      '#default_value' => $form_state['storage']['queryq'],
    );
  }
 
  $form['submit'] = array(
    '#type' => 'submit',
    '#value' => t('Execute'),
  );

  return $form;
}

function repa_page_form_submit(&$form, &$form_state) {
 
  unset ($form_state['input']['queryq']); //РАБОТАЕТ
//unset ($form_state['values']['queryq']); //НЕ РАБОТАЕТ
  $form_state['storage']['queryq'] = '12345678';
//print_r ($form_state);
  $form_state['rebuild'] = TRUE;
 
}

Комментарии

Аватар пользователя alaa alaa 27 ноября 2013 в 14:15

Как же все просто оказалось!

Огромное спасибо!!

Я форму упростил, чтобы понятно было, на самом деле заполнение текстом более сложное будет.
Кстати, для приведенного Вами примера не нужно unset использовать, значение само подставляется нужное.

Еще раз спасибо, очень помогли!