Перейти к содержимому

Как вернуться на предыдущую страницу php

  • автор:

Как вернуться на предыдущую страницу php?

Проблема в том, что при обработке данных он наращивает страницы т.е Вы зашли на страницу авторизации, ввели данные он показал что логин и пароль неверные, Вам захотелось нажать назад, чтобы вернуться на главную страницу, но нужно будет уже нажать 2 раза т.к страница авторизации дублируется, как решить эту проблему?

  • Вопрос задан 24 янв.
  • 121 просмотр

1 комментарий

Простой 1 комментарий

Как вернуться на предыдущую страницу в то же место по вертикали

Сегодня рассмотрим, как реализовать функционал возврата на предыдущую страницу в тоже место по вертикали, с которого мы перешли на текущую страницу. Будем делать возврат с плавной прокруткой до нужного места.

Допустим, у нас есть страница длинного каталога товаров. Нажав на ссылку на товар мы переходим на его страницу. А на ней помимо прочей информации есть ссылка “Назад”. И мы хотим нажимая на эту ссылку вернуться именно в то место по вертикали, с которого был сделан переход.

Реализация возврата на предыдущую страницу в нужное место по вертикали

Для демонстрации примера, я создам 2 простые .html страницы. Первая будет имитировать каталог. Одну из ссылок в середине страницы я выделю другим цветом, чтобы визуально было удобно определить, что возврат происходит куда нужно.

Эту страницу назову index.html.

    Blog   .col  
Column
Column
Column
Column
Column
Column
Column
Column
Column

Выглядеть она будет примерно вот так.

В хедере вы можете видеть подключение файла script.js. Его мы пока не создали, но создадим чуть позже.

Вторая страница будет еще проще. Её я назову article.html и там не будет практически ничего, кроме подключения скриптов и ссылки обратно на index.html.

    Article    BACK  

Скрипт возврата в нужное место по вертикали предыдущей страницы

Теперь создадим файл script.js, который мы уже подключили на обеих страницах. И пропишем туда следующий код.

$(document).ready( function() < $(function () < var pathName = document.location.pathname; window.onbeforeunload = function () < var scrollPosition = $(document).scrollTop(); sessionStorage.setItem("scrollPosition_" + pathName, scrollPosition.toString()); >if (sessionStorage["scrollPosition_" + pathName]) < $(document).scrollTop(sessionStorage.getItem("scrollPosition_" + pathName)); >>); >);

Здесь мы будем использовать событие onbeforeunload, которое произойдет, когда пользователь захочет перейти с одной страницы на другую. Когда произойдет это событие, то мы сохраним в переменную scrollPosition текущие положение на странице, после чего запишем его в сессию.

А далее мы будем проверять, есть ли у нас в сессии соответствующая переменная и если она есть, то будем прокручивать страницу до нужного места.

Скрипт можно модернизировать под свои потребности. В данном случае я добавляю к имени переменной, которую мы сохраняем в сессии pathName, чтобы прокрутка происходила именно на нужной странице, а не на всех подряд.

При необходимости вы можете также очищать sessionStorage. Всё зависит от конкретной задачи. Это основной подход, который работает. Надеюсь пост был вам полезен.

Как вернуться на страницу с которой был осуществлен переход?

Есть страничка с товарами (в виде ссылок) и с кнопкой «Загрузить еще». Кнопка реализована на ajax method POST. По умолчанию на странице выведены 16 товаров. Кликая на товар, переходим на страничку с этим товаром.

Добавляя кнопкой «Загрузить еще » товары и переходя по ним мне нужно вернуться на предыдущую страницу на то место откуда был осуществлен клик. Для этого есть кнопка «Назад». Нажимая на «назад» меня перекидывает на предыдущую страницу, но на странице отображаются только товары по умолчанию (первые 16 шт). Не могу понять как мне попасть именно на место клика?
Вот код js

  

Это код ajax.php

else < $sql = mysql_query("SELECT * FROM `catalog` WHERE cat_id in (7,8,9,10,11,12) ORDER BY FIELD(status, '2') ASC, `article` DESC LIMIT " . $startIndex . " , " . $countView . " ") or die(mysql_error()); >$row_BU = array(); while ($result = mysql_fetch_array($sql, MYSQL_ASSOC)) < $row_BU[] = $result; >if (empty($row_BU)) < // если новостей нет echo json_encode(array( 'result' =>'finish' )); > else < // если новости получили из базы, то сформируем html элементы // и отдадим их клиенту $html = ""; foreach ($row_BU as $row) < if ($row['status'] == 3) $a1 = ' style="border: solid red; width:192px; height: 347px;" '; else $a1 = ''; if ($row['status'] == 0) $a2 = ''; elseif ($row['status'] == 1) $a2 = 'new'; else $a2 = 'sold'; if ($row['price'] == 0) $a3 = ''; else $a3 = '€'.$row['price']; $html .= ' 
   '; $html .= '
'; $html .= ''; $html .= '
'; $html .= ' '; $html .= '' . $row['catalog_image'] . ''; $html .= '
'; $html .= '
' . $row['name'] . '
'; $html .= '
' . $row['description'] . '
'; $html .= '
Размер: ' . $row['size'] . '
'; $html .= '
' . $row['article'] . '
'; $html .= '
' . $a3 . '
'; $html .= ''; $html .= '
'; $html .= ''; > echo json_encode(array( 'result' => 'success', 'html' => $html, )); >
  • Вопрос задан более трёх лет назад
  • 794 просмотра

Joomla 1.0 Редирект на предыдущую страницу после авторизации

Site Joomla-Support.ru is not affiliated with or endorsed by the Joomla Project or Open Source Matters.
The Joomla logo is used under a limited license granted by Open Source Matters the trademark holder in the United States and other countries.

Внимание! Проект Joomla-Support.ru официально никак не связан с Open Source Matters и не представляет Open Source Matters или Joomla! Project
Информация, опубликованная на форуме, не может считаться одобренной или рекомендованной Open Source Matters или Joomla! Project.
Название и логотип Joomla!® используются по ограниченной лицензии, предоставляемой Open Source Matters, владельцем торговой марки в Соединенных Штатах и других странах.

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *