Вы здесь

Как после отправки webform сделать редирект на страницу, с которой была открыта форма?

0
function mmymodule_form_alter(&$form, &$form_state) {
if ($form_id == 'webform_client_form_2') {
$form['submitted']['refer_url']['#default_value'] = $_SERVER['HTTP_REFERER'];}}

В поле webform HTTP_REFERER запихивается и отправляется

А вот как на этот адрес отправить обратно посетителя - ну никак не получается

Rules не хотелось бы здесь применять

Что-то типа $form_state['redirect'] = '---HTTP_REFERER---'; вроде должно работать
но всё что пытался сочинять - детские попытки

Помогите пожалуйста.

Версия Drupal: 
7.x
Категория: 
Form API
Связанные проекты: 
Webform
Вопрос задан 26.03.2017 - 16:41
Аватар пользователя Pavel
Pavel
-47

$_SERVER['HTTP_REFERER'] - это страница с которой вебформу захотели отправить
туда и надобно вернуть пользователя
модальное окно не подходит.

страница >>> вебформа >>> вернуть обратно
страниц несколько разных - только через HTTP_REFERER возвращать

Комментарий оставлен 26.03.2017 - 18:30

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

Комментарий оставлен 26.03.2017 - 20:04

Да!
Тут что-то типа этого надо
но всё что напридумывал - косячит

function mmymodule_form_alter(&$form, &$form_state) {
$form['actions']['submit']['#submit'][] = 'mmymodule_form_submit';}
function mmymodule_form_submit($form, &$form_state) {
$form_state['redirect'] = array('рефер');}

Комментарий оставлен 27.03.2017 - 15:42

Ответы

0

у каждой вебформы есть настройка в которой можно указать редирект. вот скрин http://clip2net.com/s/3IRuv44

Ответ дан 26.03.2017 - 18:18

тут только свои токены сочинять, а они плохо именно с рефером работают

Комментарий оставлен 26.03.2017 - 18:33
0
  1. В hook_form_alter сохраните HTTP_REFERER в '#type'=>'hidden' или в сессии.
  2. Навесьте свой submit на форму.
  3. В своём submit сделайте редирект.

В чём сложность?

Ответ дан 27.03.2017 - 16:11
Аватар пользователя xandeadx
xandeadx
1527

Сложность в отсутствии знаний.
Не понятно как состыковать с верхним кодом.
То что сочиняется - не работает - что-то да отваливается - мож кто поможет?

Комментарий оставлен 28.03.2017 - 01:35

Начните по пунктам, если будут конкретные сложности, то спрашивайте.

Комментарий оставлен 28.03.2017 - 14:50
function mmymodule_form_alter(&$form, &$form_state) {
if ($form_id == 'webform_client_form_2') {
$form['submitted']['refer_url']['#default_value'] = $_SERVER['HTTP_REFERER'];}

$path = $_SERVER['HTTP_REFERER'];
if (isset($_GET['current'])) {
$path = $_GET['current'];}

$form_state['redirect'] = array('print $path');}

извиняюсь за глупый вопрос...
куда и как сабмит пристраивать?
абсолютно не понимаю как это должно работать.

Комментарий оставлен 28.03.2017 - 16:35

Максимум на чего ума хватило - отправить на фиксированный адрес
Но это и "из коробки" в админке делается.

Комментарий оставлен 18.04.2017 - 12:34