Автоматический возврат на страницу результатов после отправки
Я хочу знать, как я могу вернуться на предыдущую страницу...
Я нахожусь на странице результатов поиска, где много результатов. Для каждого результата есть опция, такая как "EMAIL ME".
Когда пользователь нажимает на нее, открывается форма "толстый ящик", в которой пользователь должен указать свое имя и идентификатор электронной почты. Когда пользователь нажимает кнопку "отправить для отправки формы", в нашей базе данных делается запись, и пользователю отправляется электронное письмо через его / ее идентификатор электронной почты.
Проблема в том, что после отправки формы я хочу перенаправить пользователя на страницу результатов поиска, где у пользователя есть возможность отправить электронное письмо обратно.
3 ответа
Вы можете использовать Ajax для отправки формы, а затем просто закрыть Thickbox. Если Ajax не является опцией, вы также можете перенаправить пользователя на предыдущую страницу, используя URL-адрес реферера.
header("Location: ".$_SERVER["HTTP_REFERER"]);
Обновить:
Поскольку некоторые браузеры иногда не предоставляют URL-адрес реферера, вышеприведенное не сработает. Обходной путь - сделать так, чтобы форма в Thickbox предоставляла URL страницы поиска, которую затем можно было бы использовать для перенаправления.
В форме Thickbox добавьте скрытый элемент с URL. Это можно сделать с помощью JavaScript или PHP.
Тогда вместо использования HTTP_REFERER используйте имя скрытого элемента.
Форма: <input type='hidden' name='searchUrl' value='http://the.search.url' />
PHP: header("Location: ".$_REQUEST["searchUrl"]);
Запомните последнее местоположение в сеансе и перенаправьте в него заголовок Location.
Добавьте следующий код на страницу, которую вы хотите вернуть =>
<?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"];
?>