пятница, 10 февраля, 2017 - 02:13

Вместо метода "get" используем "post" так, как нам нужна логика редиректа.
А "get" запрос будет эмулировать "drupal_goto".

Пример

У нас есть форма поиска с галочкой "искать только в новостях" (элемент "is_news").
Тогда редирект будет идти на страницу с новостями.

Для реализации достаточно форме добавить submit.

function FORMNAME_submit($form, &$form_state) {
  $values = &$form_state['values'];

  // clear
  unset($values['form_build_id']);
  unset($values['form_token']);
  unset($values['form_id']);
  unset($values['submit']);
  unset($values['op']);

  // redirect
  if ($values['is_news']) {
    $form['#action'] = '/news';
  }

  drupal_goto($form['#action'], array('query' => $values));
}

Полезные ссылки:
Очистить get форму от лишних параметров - http://xandeadx.ru/blog/drupal/674

Прозрачного код ;).

Теги: 

Добавить комментарий

Plain text

  • HTML-теги не обрабатываются и показываются как обычный текст
  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Строки и параграфы переносятся автоматически.