Как убрать окно «Подтвердите повторную отправку формы»?
На странице есть формы, которые обрабатываются на той же странице.
И в зависимости от отправленной формы, выводятся соответствующие данные.
Но при обновлении страницы, когда форма уже отправила данные, всплывает это окно, как его убрать без редиректа?
- Вопрос задан более трёх лет назад
- 4488 просмотров
5 комментариев
Простой 5 комментариев
Никак. Что бы выводить в зависимости от отправленной формы соответствующие данные, сохраняйте их в файл или в сессию, и делайте редирект.

Дмитрий @Compolomus Куратор тега PHP
Это арбузер шалит, после обработки и прочего, сделайте редирект на реферер
Aspirant555 @aspirantes
Дмитрий, а если вылезает при возврате на предыдущую страницу?

Дмитрий @Compolomus Куратор тега PHP
aspirantes, для этого и нужен редирект, чтоб очистить данные пост
Aspirant555 @aspirantes
Дмитрий, пост очищается, но при возврате на страницу назад, браузер выдает предупреждение о форме, но не вводит её. Выглядит как критическая ошибка (требующая обновить страницу), неприятно, и не знаю как решить, пока планирую wndow.replace в javasrypt. Но хотелось бы в PHP вопрос решить.
Решения вопроса 0
Ответы на вопрос 3

Смените метод POST на GET.
Ответ написан более трёх лет назад
Нравится 1 3 комментария

Ярослав Иванов @space2pacman
Не пишите если не знаете в чем отличие пост от гет.

Да я смотрю, ты просто звезда тостера. Что ни ответ — то брильянт

Ярослав Иванов, судя по вопросу, у автора какая-то форма фильтрации. И скажите, зачем ему использовать в этом случае метод POST? Я не вижу причин. В таком случае будет уместен именно GET.
FanatPHP, ну простите меня идиота. Предположившего, что в поисковой форме уместнее GET, а не POST.

разработчик, начинающий фрилансер
Если я правильно понял вопрос, то чтобы не появлялось окно браузера когда форма уже заполнена данными (во избежания из потери и повторного ввода) нужно как-раз таки сделать редирект. Если данные нужны в полях, проще сохранить в сессию и после редиректа со страницы отображать в полях, при повторном очищать.
Html как убрать подтверждение повторной отправки формы

Если заполнить поле ввода и отправить, то все нормально. Но если после этого обновить страницу с пустым полем, вылетит сообщение: «Страница, которую вы хотите открыть, использовала введенную вами информацию. При возврате на эту страницу может потребоваться повторить выполненные ранее действия. Продолжить?»
Как сделать так, чтобы оно не выпадало? Или, хотя бы, автоматически нажималась кнопка «Далее» ?
| Parallelogram |
| Посмотреть профиль |
| Найти ещё сообщения от Parallelogram |
Форумчанин
Регистрация: 18.01.2011
Сообщений: 173
А можно как-нибудь сделать так, чтобы поле ввода сохраняло текст введенный до этого? Не имеет разницы js это или html. Каким макаром избежать этого предупреждения? Прошу, помогите(
| Parallelogram |
| Посмотреть профиль |
| Найти ещё сообщения от Parallelogram |
Участник клуба
Регистрация: 23.07.2007
Сообщений: 1,054
Есть несколько вариантов решения этой проблемы.
1. Если вы используете какой то серверный язык программирования, то после отправки, например, POST сообщения (ну когда форму php скрипт будет обрабатывать), вместо вывода результата можно произвести редирект на эту же страницу. и в результате она откроется но уже без POST и ругаться не будет.
2. Использовать AJAX отправку данных на сервер, Тогда там вообще форма не нужна будет.
Писано по д’Эльфийски
Форумчанин
Регистрация: 18.01.2011
Сообщений: 173
Можно поподробнее по первому пункту. При перезагрузке страницы я попадая на неё, но в состояние до ввода текста в поле?
Каким путем лучше сделать редирект (я просто не силен в анализе вариантов):
echo '"text/javascript">'; echo 'window.location.href="'.$url.'";'; echo ' ';
Подтвердите повторную отправку формы, как убрать?
Здесь посмотри https://fructcode.com/ru/qa/pochemu-pri-kajdom-obnovlenii-tablisi/ Чтобы каждый раз не обновлялись данные, там есть решение. Вообще, вы скорее всего ранее пытались отправить данные из формы и по этой причине браузер спрашивает повторное подтверждение отправки. Просто выделите в браузере адрес сайта и нажмите интер, потом не должен просить подтверждение отправки.
Sign up or Log in to write an answer
- Интерактивные уроки и курсы программирования и создания сайтов (дистанционное обучение) помогут вам в игровой форме изучить основы языков программирования веб-разработки и веб-программирования с нуля. Обучение онлайн 24/7.
Общие ссылки
- Отзывы
- Политика конфидециальности
- Условия использования
- Блог
- Цена и оплата
- Курсы и скринкасты
- Сертификаты
- Партнерская программа
- Комьюнити
Наши курсы и скринкасты
- HTML/CSS Advanced
- Bootstrap 4
- Vue JS
- Linux, GIT and web-hosting
- HTML and CSS
- Modern Javascript
- Javascript/jQuery
- Codeigniter
- Все курсы и скринкасты
Как убрать окно «подтверждение повторной отправки формы» при выборе пункта выпадающего списка в Ggobal filter?
В шапке сайта, есть выпадающий список по выбору города, при этом на странице меняется информация в представлении в котором настроен контекстный фильтр по модулю global filter.
Если в выпадающем списке выбираю город например Оренбург (термин таксономии), то после обновления на странице появляются материалы соответствующие Оренбургу.
Но если я просто нажимаю на «обновить страниц» то перед обновлением появляется диалоговое окно браузера.
с текстом, что на странице заполнена форма и при обновлении страницы возможно информация потеряется.
Как избавиться от этого окна? Это предупреждение мне точно не нужно, и тем более пользователю..
во вложении прикрпил скриншот
| Вложение | Размер |
|---|---|
| |
38.47 КБ |
- Drupal7
- Есть вопрос
- Решение проблем
- Блог
- Войдите или зарегистрируйтесь, чтобы отправлять комментарии
Лучший ответ
ivnish 13 марта 2018 в 19:00
Нужно сделать так, чтобы форма отправлялась фоном, т.е. использовать ajax
Комментарии
ivnish 13 марта 2018 в 19:00
Нужно сделать так, чтобы форма отправлялась фоном, т.е. использовать ajax
- Войдите или зарегистрируйтесь, чтобы отправлять комментарии
- Реакции
engenes 14 марта 2018 в 8:37
Насколько я знаю этот модуль не предусматривает ajax.
И вроде и на drupal.org его архив подсвечен зеленым, то есть никаких багов не имеет. А входит мне нужно этот модуль еще руками доделывать
- Войдите или зарегистрируйтесь, чтобы отправлять комментарии
- Реакции
bumble 14 марта 2018 в 8:57
Это не баг, и не «поведение модуля».
Это стандартное поведение браузера — после отправки пост-запроса спрашивать о необходимости отправки данных повторно.
Вы же не хотели бы, к примеру, случайно 2+ раза заплатить за что-то, если нечаянно (или спецом) нажмете F5 на странице.
- Войдите или зарегистрируйтесь, чтобы отправлять комментарии
- Реакции
gun_dose 14 марта 2018 в 9:12
Абсолютно верно. Если страница получена путём отправки формы, то браузер всегда вывешивает такое предупреждение. Есть кстати ещё прикол с дебагом форм — когда обновляешь страницу, а потом отправляешь форму, могут использоваться значения от прошлых отправок.
- Войдите или зарегистрируйтесь, чтобы отправлять комментарии
- Реакции
да как это не назови, любому пользователю будет неудобно закрывать дополнительные диалоговые окна. А разработчику то есть мне нужно дописывать ajax руками, что я собственно, и сделал, плохо что в модуле это не предусмотренно из коробки.
- Войдите или зарегистрируйтесь, чтобы отправлять комментарии
- Реакции
bumble 14 марта 2018 в 10:20
Зачем такое руками делать? Views поддерживает AJAX’ификацию фильтров «из коробки».
- Войдите или зарегистрируйтесь, чтобы отправлять комментарии
- Реакции
xakd 14 марта 2018 в 14:32
Используйте Оперу Престо, она не спрашивает ))
- Войдите или зарегистрируйтесь, чтобы отправлять комментарии
- Реакции