Как реализовать редирект назад на страницу после отправки формы

18 нояб. 2011 г., 04:56:27
Просмотры: 14.9K
Голосов: 1

Я создаю сайт на WordPress (своя собственная тема), который включает простую форму подписки по email. Пользователь вводит имя и email, затем нажимает кнопку отправки. Клиент сейчас использует скрипт через Bluehost, поэтому я хочу воссоздать функционал без использования плагинов для форм.

Форма работает нормально. После нажатия "Отправить" пользователь перенаправляется на страницу "Спасибо". Я хотел бы добавить ссылку "Вернуться на страницу" после сообщения "Спасибо за подписку", которая будет возвращать пользователя на ту страницу, откуда он пришел (форма будет находиться на большинстве страниц сайта).

Пробовал добавить это в шаблон:

    <?php
$url = htmlspecialchars($_SERVER['HTTP_REFERER']);
echo "<a href='$url'>Назад на страницу</a>";
?>

но это вызывает ошибку, так как перенаправляет обратно на Bluehost, а не на оригинальную страницу.

Кто-нибудь может помочь?

Спасибо!

0
Все ответы на вопрос 2
2

Есть отличная функция под названием wp_redirect(), к сожалению, пока не поддерживающая аргумент "последней страницы", но я надеюсь, что это скоро изменится.

Я считаю, что самый простой (но не самый элегантный) способ достичь желаемого — использовать JavaScript. На jQuery это будет выглядеть так:

<script type="text/javascript">
   jQuery(document).ready(function() {
      jQuery('#back-link').click(function() {
         history.go(-1) 
       });
   });
</script> 
<a href="#" id="back-link">Назад</a>

Этот код не обновляет последнюю страницу, но, на мой взгляд, это даже лучше.

Надеюсь, это поможет.

18 нояб. 2011 г. 05:34:33
Комментарии

Спасибо, Wordpressor: именно это мне и было нужно! Ценю вашу помощь!

PVA PVA
22 нояб. 2011 г. 19:56:38

@PVA, добро пожаловать на борт.

Wordpressor Wordpressor
23 нояб. 2011 г. 04:03:25
0

Используйте JavaScript-трюк с историей для кнопки "Назад".

<a href="#" onClick="history.back();return false;">Вернуться на страницу</a>

Вот полное обсуждение, почему нужно использовать JavaScript-редирект: https://stackoverflow.com/questions/8046859/how-to-trigger-browsers-back-event-function-using-javascript

Надеюсь, это поможет!

18 нояб. 2011 г. 05:35:06