Как автоматически обновить страницу после отправки формы
я использовал <form action=»<?php echo htmlspecialchars($_SERVER[«PHP_SELF»]);?>» method=»post»> что означает, что он отправляет на той же странице.
4 ответа
Вы можете обновить страницу несколькими способами:
Путь: 1
Путь: 2
Способ: 3 (не рекомендуется)
onsubmit=»window.location.reload();» кажется, это не работает. Так что я использую функцию тайм-аута в нем. Чтобы это работало.
Путь: 4
Поэтому основная проблема, которую вы описываете, заключается в том, что методом запроса url является POST. Если вы обновите страницу после отправки формы, браузер попытается снова выполнить POST, как если бы вы нажали кнопку отправки.
На самом деле это очень естественный способ отправки данных (на URL, на котором создается форма). Большинство CMS с открытым исходным кодом будут делать то же самое и вести себя одинаково (wordpress, drupal).
Я создал пользовательскую систему, которая выполняла ту же функцию, но у меня были некоторые жалобы на обновление, вызывающее «Вы уверены, что хотите снова отправить эту форму» вместо простой перезагрузки формы. Поэтому я решаю проблему с помощью решения @Bruce s. Внизу моей страницы, прежде чем что-либо выводить, я делаю перенаправление на текущий URL. Это изменяет предыдущую страницу в глазах обозревателя на GET вместо POST и предотвращает предупреждение повторной отправки.
Что касается ваших данных, которые не обновляются, вы, вероятно, создаете форму перед обработкой сообщения. Убедитесь, что обработка сообщения является первой выполняемой вами операцией.
Моя система сильно отличается от этого примера кода, поэтому не ожидайте, что это сработает из коробки. Но это должно дать вам правильную идею.
Как сделать перезагрузку страницы после отправки формы?

1) Если вы уберете «файл php» из экшна, фрома будет субмититься на текущий урл, что как раз будет давать вам перезагрузку. Естественно код отправки данных на емэйл тоже надо будет расположить в текущем скрипте.
2) Отправляйте данные аяксом через яваскрипт, после чего перегружайте страницу из яваскрипта.
В первом варианте есть нюанс — обновление страницы после субмита методом пост вызывает не совсем юзерфрендли поведение, предлагая снова отправить данные. Обычно после такой загрузки формы делают редирект на нужную страницу методом гет, это решает проблему.
Php как обновить страницу после отправки формы

Use header() function to refresh a web page in PHP. The HTTP functions are those functions which manipulate information sent to the client or browser by the Web server before any other output has been sent. The PHP header() function sends an HTTP header to a client or browser in raw form. Before HTML, XML, JSON or other output has been sent to a browser or client, a raw data is sent with the request (especially HTTP Request) made by the server as header information. HTTP header provides required information about the object sent in the message body more precisely about the request and response.
Syntax:
Parameters:
- $header: It holds the header string. There are two types of header calls. The first header starts with string “HTTP/”, which is used to figure out the HTTP status code to send. The second case of header is the “Location:”. It is mandatory parameter.
- $replace: It is optional parameter. It denotes the header should replace previous or add a second header. The default value is True (will replace). If $replace value is False then it force multiple headers of the same type.
- $http_response_code: It is an optional parameter. It forces the HTTP response code to the specified value (PHP 4.3 and higher).
Note: This function prevents more than one header to be sent at once. This is a protection against header injection attacks after PHP 4.4 release.
Below example illustrates the use of header() to refresh current page in PHP:
Example: This example uses header() function to refresh a web page in every 3 seconds.
Как остаться на странице после отправки формы с помощью PHP и обновить ее?
Веб-сайт, который я создаю, содержит форму, в которой пользователи могут вводить имя и адрес электронной почты, которые затем пересылаются с помощью PHP на мой адрес электронной почты (работает).
После отправки формы электронное письмо отправляется, но в настоящее время я перенаправлен в файл PHP. Мне интересно, как остаться на той же странице, а затем обновить текст кнопки регистрации на «отправлено».