2012-05-31 3 views
1

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

Я на искомое страницы результатов, где многие результаты присутствуют. Для каждого результата есть такой вариант, как «EMAIL ME».

Когда пользователь нажимает на него, открывается толстая форма, где пользователь должен указать свое имя & email id. Когда пользователь нажимает «отправить, чтобы отправить форму», запись в нашей базе данных производится, и электронное письмо отправляется пользователю через его/ее идентификатор электронной почты.

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

ответ

5

Вы можете использовать Ajax для отправки формы, а затем просто закрыть Thickbox. Если Ajax не является вариантом, вы также можете перенаправить пользователя на предыдущую страницу, используя URL-адрес реферера.

header("Location: ".$_SERVER["HTTP_REFERER"]); 

Update:

Поскольку некоторые браузеры, иногда, не дают ссылающейся URL, выше не будет работать. Работа вокруг заключается в том, чтобы иметь форму в Thickbox, чтобы указать URL-адрес страницы поиска, которая затем может быть использована для перенаправления.

В форме Thickbox добавьте скрытый элемент с URL-адресом. Это можно сделать с помощью JavaScript или PHP.

Затем вместо использования HTTP_REFERER используйте имя скрытого элемента.

Форма: <input type='hidden' name='searchUrl' value='http://the.search.url' />

PHP: header("Location: ".$_REQUEST["searchUrl"]);

+0

PLZ рассказать мне больше о том, как перенаправить на отправленный URL. –

+0

URL-адрес поиска на самом деле не для меня, поскольку мой URL-адрес изменяется при каждом нажатии на поиск, но ваш HTTP_REFERER работает нормально.большое спасибо за вашу помощь –

+0

В качестве альтернативы, пусть JavaScript заполняет URL-адрес страницы результатов поиска. –

1

Помните последнее место с сеансом и перенаправляйте его с заголовком местоположения.

+0

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

+0

Да, вы можете. Сеансы устанавливаются на основе соединения, а не на пользователя. –

0

Добавить следующий код на страницу, которую хотите вернуть =>

<?php 
    session_start(); 
    $_SESSION["addresser"]="home.php"; 
?> 

Теперь Добавьте следующий код на странице у вас есть свой форму/или откуда вы хотите вернуться => Сначала добавьте скрытое поле в свою форма =>

<input type="text" name="valid" hidden="hidden" readonly="readonly" value="true"/> 

Теперь добавьте следующий код PHP в верхней части этой страницы ==>

<?php 
session_start(); 
$location=$_SESSION["addresser"]; 
if($_SESSION["validate"]="true"){ 
header("location: $location");} 
?> 

Добавить также следующий код в файл PHP, где представляется форма ... .

<?php 
$_SESSION["validate"]=$_POST["valid"]; 
?> 
Смежные вопросы