|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
11.04.2014, 17:17 | #1 |
Участник клуба
Регистрация: 07.07.2009
Сообщений: 1,385
|
PHP - как граммотно избавиться от Confirm Form Resubmission
Дорогие формучане, после отправки данных из формы в базу данных методом POST появляется информационное окно "Сonfirm Form Resubmission" при обновлении браузера. И если я подтверждаю, мне опять форма отсылает только что сохраненные данные в базу. У меня уже столько одинаковых данных накопилось!
Вот образец формы(addItem.php): Код:
Код:
В Интернете рекомендуют пользоваться header(перенаправление), но у меня во-первых пользователь должен оставаться на том же окне, а во-вторых у меня MVC-приложение и по страницам (View) я хожу при помощи метода в контроллере. И я не знаю, как правильно в таком случае этот header прописать. Пока у меня работает без окна Confirm только единственный вариант Код:
Как избавиться от дублирования данных и этого жуткого Resubmit Confirmation?
"Все мы жаждем чудес. Чисто человеческое свойство." Carl Sagan
|
11.04.2014, 18:01 | #2 | |
Старожил
Регистрация: 31.05.2010
Сообщений: 3,301
|
Цитата:
Можно сделать функцию редиректа в хелпере, или же специальный метод для редиректа в базовом контроллере – и использовать их для выполнения перенаправления. В простейшем виде это выглядит примерно так: PHP код:
PHP код:
PHP код:
|
|
11.04.2014, 22:49 | #4 | ||
Участник клуба
Регистрация: 07.07.2009
Сообщений: 1,385
|
Цитата:
Я вообще на PHP писала два года назад, все больше на Шарп и Джава, а тут пришлось делать модуль с возможно последующей интерграцией в готовый веб-сайт, вот я Кохана и постигаю. Уважаемый Andkorol, спасибо Вам за совет, сейчас буду пробовать. И у меня еще к Вам вот какой вопрос по тому же коду - а вот почему так может быть: кнопка срабатывает, то есть в адресной строке видно, что данные на событие (isset($_POST['addNewItem'])) формируются (и где-то в сессии сидят), но в базе данных тишина. А если заместо кнопки 'addNewItem', я в if подставлю название поля itemName (то есть получется строчка Код:
И вот тоже не совсем понятно: Вы пишите Цитата:
Вот написала в контроллере в action index Код:
Ваш способ с редиректом в контроллере сработал. Списибо огромное - я Вам плюсую! Как все-таки приятно, когда профессионалы дают точный синопсис и действенное "лекарство". А то сидишь днями, разбираешь примеры, чтобы две строски кода запустить, и в результате они к тому же и запускаются криво.
"Все мы жаждем чудес. Чисто человеческое свойство." Carl Sagan
Последний раз редактировалось Blondy; 11.04.2014 в 23:27. |
||
11.04.2014, 23:09 | #5 | |
Старожил
Регистрация: 31.05.2010
Сообщений: 3,301
|
Цитата:
Код HTML:
<button type="submit" value="1" name="addNewItem" >Добавить новый товар</button> Поэтому нужно проверять именно наличие данных в itemName: PHP код:
|
|
11.04.2014, 23:35 | #6 |
Старожил
Регистрация: 31.05.2010
Сообщений: 3,301
|
|
12.04.2014, 00:59 | #7 |
Участник клуба
Регистрация: 07.07.2009
Сообщений: 1,385
|
Спасибо Вам огромное!
"Все мы жаждем чудес. Чисто человеческое свойство." Carl Sagan
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Form 1 родительская а Form 2 дочерняя как их поменять местами ? | reihtmonbern | Общие вопросы Delphi | 7 | 27.12.2013 00:00 |
Как избавиться от глупости | victorshkoda | Win Api | 7 | 22.03.2013 14:19 |
confirm в javaScript | kuba1981 | JavaScript, Ajax | 5 | 15.02.2013 17:58 |
Как избавиться от #Н/Д? | kachorro | Microsoft Office Excel | 10 | 26.04.2012 06:38 |
IE7. Как получить параметры окна confirm()? | Doda | Windows | 1 | 24.04.2009 10:22 |