Как обновить страницу php
Перейти к содержимому

Как обновить страницу php

  • автор:

maxua.com.ua Автоматизация интернет магазинов

два способа обновить часть страницы без перезагрузки

PHP не может этого сделать, только на стороне клиента с использованием Javascript.

вариант с использованием JQuery :

Index.php

Может быть обновлены с помощью следующего кода:

Это позволит загружать содержимое #block из index.php без обновления всей страницы.

Можно автоматизировать, обновляется каждые 30 секунд с помощью setInterval ();

setInterval(function() <
$(«#block»).load(«index.php #block»);
>, 30000);

еще вариант с iframe:

Если обновить страницу, то данные отправятся еще раз

php уроки

Вот как выглядит страница если нажать f5 (обновить) если вы только что отправили форму с POST данными.

То есть сайт предлагает отправить POST данные еще раз. Если же используется метод GET, то запроса на повторную отправку не будет.

Кстати, вместо сайта мы видим предложение отправить повторно пост данные — так получилось если нажать кнопку назад.
То есть на скриншоте дублирование информации (это я так постарался), на практике у обычных пользователей такое редко случается, обычно ТОЛЬКО окошко всплывает, а сам сайт виден.

В общем, чтобы этого окошка не было и оно не вводило в ступор юзеров и ТЕМ БОЛЕЕ не отправляло повторно данные, а это еще важнее, представьте при комментировании будут отправляться комментарии дважды или трижды (смотря сколько раз пользователь обновит страницу).
Рассмотрим подробнее. Ситуация такая: юзер регистрируется, заполняет форму, нажимает отправить, данные уходят, все принимается, на него заводится на сайте аккаунт, и тут же отображается профиль. Юзер ничего не думая, просто нажимает F5, видит ЭТО САМОЕ, естественно он жмет ДАЛЕЕ, страница перегружается и его выкидывает из профиля, ибо он повторно отправил данные регистрации, а такие логин, емейл и пр — уже есть. и юзер в недоумении, он то хотел всего навсего обновить страницу.
Правило: после отправки формы крайне желательно (я бы сказал обязательно) перегрузить страницу, чаще всего это делается с помощью функции header(Location: . )
Где вместо многоточия указываете адрес страницы, на которую пользователя перекинет, например, header(‘Location: 2.php’); или так: header(‘Location: 2.php?message=ok’); . Таким образом, когда мы выполнили все необходимые действия (сделали запись в базе данных, отправили письмо и т. д.), мы можем перезагрузить страницу, но уже без POST данных.
Есть и другие способы: с помощью html тега и с помощью яваскрипта, но они менее надежны.

Совет:
Для тега FORM (или его контейнера) ставить id, а для атрибута action добавлять якорь! Чтобы после отправки формы пользователь возвращался к форме, а не к верху страницы. Но если надобности нет, то вообще не заполнять атрибут action, а с некоторых пор он стал не обязательным.
В идеале, конечно же, перед отправкой формы делать проверку яваскриптом, чтобы пользователю не приходилось исправлять неверно введенные данные (например, с помощью jValidate )

Знание это сила

учебный центр. 2010-2024 ©
г. Москва,
г. Санкт-Петербург,
г. Калининград,
г. Краснодар
и другие города

  • Схема проезда для автомобилистов и видео
  • Схема подхода для пешеходов
  • Контакты
  • Карта сайта
  • Новости и акции

Обновить страницу с помощью JS / HTML / PHP

JS -метод location.reload() перезагружает текущую вкладку браузера и действует также как кнопка «Обновить страницу».

location.reload();

Пример перезагрузки страницы кликом на ссылку или кнопку:

Цикличное обновление страницы с задержкой

В коде используется тот же location.reload() выполняемый с задержкой setTimeout() в тридцать секунд.

setTimeout(function()< location.reload(); >, 30000);

Перезагрузка страницы с задержкой

В случаях когда после клика на кнопку или ссылку нужно перезагрузить страницу с задержкой, например две секунды:

 Обновить страницу через 2 секунды  
Пример:

Перезагрузка страницы с подтверждением

Чтобы пользователь мог подтвердить действие, можно применить метод вызова диалогового сообщения confirm.

if (confirm('Вы действительно хотите обновить страницу?'))

Или по клику на ссылку:

 Обновить страницу  
Пример:

Обновление родительской страницы из IFrame

Для обращения к ресурсам родительской страницы из IFrame используется объект parent , подробнее в статье «Как обновить iframe».

parent.location.reload();

Перезагрузка страницы с помощью HTML

Добавление мета-тега в страницы заставит её перезагрузится. Значение атрибута content больше нуля задает задержку в секундах.

   Document . 

Перезагрузка страницы из PHP

Обновить страницу прямо с сервера можно c помощью функции header() , отправив заголовок « Refresh: 5 », где значение «5» указывает интервал в пять секунд.

header("Refresh: 5");

Важно, чтобы перед вызовом функции не было отправки контента в браузер, например echo .

Перезагрузка страницы на JS и PHP

Перезагружать страницу или же осуществлять переход на другую страницу (редирект) можно при помощи следующего кода:

header("Location: index.php");

Зачем это нужно? Иногда есть смысл сбросить переданные POST параметры, чтобы после отправки формы и при нажатии пользователем F5 (не спрашивайте, я не знаю зачем это делают �� ) страница не отправила повторное письмо.

Если кто-то знает решение получше, просьба поделится в комментариях.

Как перезагрузить страницу на JavaScriptе

Для js всё гораздо проще, но тоже есть свои варианты

location.reload();

Есть также вариант с редиректом:

window.location.replace('https://www.site.ru');

Как вы могли заметить, тут идет вывод переменной $URL, то есть по сути мы совместили js + php. Не могу сказать что это хороший вариант, но иногда по другому никак. Кстати говоря, неоднократно видел, когда параметры для плагина подхватывались из настроек модуля и вбивались похожим образом на пхп.

Теперь вы знаете как перезагружать страницу на PHP и JavaScripte ��

ПС бонус для битрикс-разработчиков:

LocalRedirect($_SERVER['HTTP_REFERER']);
автор: Dmitriy

З 2011 року займаюся веб-розробкою. Зараз я – PHP Full Stack Developer.
Обговорити ваш проект, а також дізнатися більше про мене ви можете на цьому сайті:
dev.forwww.com

Читайте також:

Залишити відповідь Скасувати відповідь

Щоб відправити коментар вам необхідно авторизуватись.

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

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