- Перезапрос страницы методом GET
- Обновить страницу с помощью JS / HTML / PHP
- Цикличное обновление страницы с задержкой
- Перезагрузка страницы с задержкой
- Пример:
- Перезагрузка страницы с подтверждением
- Пример:
- Обновление родительской страницы из IFrame
- Перезагрузка страницы с помощью HTML
- Перезагрузка страницы из PHP
- Перезапрос страницы методом GET
- Как отправить через jquery ajax, get параметры?
Перезапрос страницы методом GET
Добрый день! Сейчас погружен в учебный процесс и появился вопрос — есть форма отправляющаяся методом пост, а мне нужно в случае запроса страницы посредством ее обновления (F5) она запрашивалась методом гет. Все это для избежания дубликатов данных из формы в базе данных, по сути скрипт работает, но с одной лишь проблемой он — перенаправляет на главную страницу. Для решения задачи в случае выполнения условия я посылаю заголовок
header("Location: " . $_SERVER["PHP_SELF"]);
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
$connect = mysqli_connect('localhost','root','','gbook') or die(mysqli_error()); mysqli_query($connect,"SET NAMES 'utf8'") if(!empty($_POST['name']) and !empty($_POST['email']) and !empty($_POST['msg'])){ $name = $_POST['name']; $email = $_POST['email']; $msg = $_POST['msg']; $sql = "INSERT INTO msgs (name,email,msg) VALUES('$name','$email','$msg')"; if($query = mysqli_query($connect,$sql)) echo "Ваш отзыв добавлен, спасибо!
"; else echo "Ваш отзыв не добавлен!
"; header("Location: " . $_SERVER["PHP_SELF"]); } ?>
Перезапрос ввода переменных
Не могу никак сделать цикл do while для пере запроса ввода переменной. Мне нужно что бы когда я.
Получение методом GET содержимое страницы
Здравствуйте надо на с# получить содержимое страницы http://site.ru/file.php Содержимое страницы.
Передача методом Post без перезагрузки страницы
Всем привет ! Написал обработчик через ajax post запрос, чтоб он обновлял данные формы без.
Сообщение от Андрей Бойченко
pav1uxa, даже поставив все выводы после того как посылаю заголовок переадрессация идет на главную страницу
Сообщение от Андрей Бойченко
header("Location: " . $_SERVER["REQUEST_URI"]);
Во избежание дубликатов заведите капчу. А вообще нормальные браузеры при обновлении формы, полученной методом POST, спрашивают, нужно ли отправлять данные повторно или нет.
Сообщение от miketomlin
А вообще нормальные браузеры при обновлении формы, полученной методом POST, спрашивают, нужно ли отправлять данные повторно или нет.
А нормальные программисты пишут так, чтобы нормальные браузеры не задавали нормальным пользователям лишние вопросы.
Тогда вам как нормальному программисту нужно было рассказать человеку, как при таком подходе выводить подтверждение. 303-й заголовок тоже не помешает отправлять.
miketomlin, pav1uxa, если есть более корректные способы реализации моей задачи то подскажите пожалуйста или укажите в какую сторону смотреть. Я настроен на максимальное юзабилити и не возьмусь за разработку реального заказа пока не буду делать 100% удобные и качественные продукты)
ОК, в двух словах. Как вам в самом начале сказал pav1uxa, нужно делать либо перенаправление, либо вывод контента. Насколько я понял из ваших слов, у вас страница формы и страница результата объединены. К тому же вы используете перенаправление. При таком подходе вам необходимо как-то сообщать вашей странице, когда нужно выводить подтверждение (результирующее сообщение), а когда нет. Для этого обычно используют либо куки, либо чисто формально разделяют страницу формы и страницу результата, используя для перенаправления доп. адрес(а) (я, например, когда использую данный подход, при перенаправлении добавляю к адресу страницы параметр ?p=1 – мне обычно достаточно только одного доп. адреса, т.к. при ошибках я практически всегда использую традиционный подход с непосредственным выводом формы и восстановлением введенных пользователем значений полей). При перенаправлении на страницу результата лучше использовать 303-е перенаправление. Спеки говорят, что оно предназначено именно для этой цели, т.е. чтобы попросить клиент в данной ситуации сделать именно GET-запрос.
Обновить страницу с помощью JS / HTML / PHP
JS -метод location.reload() перезагружает текущую вкладку браузера и действует также как кнопка «Обновить страницу».
Пример перезагрузки страницы кликом на ссылку или кнопку:
Цикличное обновление страницы с задержкой
В коде используется тот же location.reload() выполняемый с задержкой setTimeout() в тридцать секунд.
Перезагрузка страницы с задержкой
В случаях когда после клика на кнопку или ссылку нужно перезагрузить страницу с задержкой, например две секунды:
Обновить страницу через 2 секунды
Пример:
Перезагрузка страницы с подтверждением
Чтобы пользователь мог подтвердить действие, можно применить метод вызова диалогового сообщения confirm.
if (confirm('Вы действительно хотите обновить страницу?'))
Пример:
Обновление родительской страницы из IFrame
Для обращения к ресурсам родительской страницы из IFrame используется объект parent , подробнее в статье «Как обновить iframe».
Перезагрузка страницы с помощью HTML
Добавление мета-тега в страницы заставит её перезагрузится. Значение атрибута content больше нуля задает задержку в секундах.
Перезагрузка страницы из PHP
Обновить страницу прямо с сервера можно c помощью функции header() , отправив заголовок « Refresh: 5 », где значение «5» указывает интервал в пять секунд.
Важно, чтобы перед вызовом функции не было отправки контента в браузер, например echo .
Перезапрос страницы методом GET
Добрый день! Сейчас погружен в учебный процесс и появился вопрос — есть форма отправляющаяся методом пост, а мне нужно в случае запроса страницы посредством ее обновления (F5) она запрашивалась методом гет. Все это для избежания дубликатов данных из формы в базе данных, по сути скрипт работает, но с одной лишь проблемой он — перенаправляет на главную страницу. Для решения задачи в случае выполнения условия я посылаю заголовок
header("Location: " . $_SERVER["PHP_SELF"]);
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
$connect = mysqli_connect('localhost','root','','gbook') or die(mysqli_error()); mysqli_query($connect,"SET NAMES 'utf8'") if(!empty($_POST['name']) and !empty($_POST['email']) and !empty($_POST['msg'])){ $name = $_POST['name']; $email = $_POST['email']; $msg = $_POST['msg']; $sql = "INSERT INTO msgs (name,email,msg) VALUES('$name','$email','$msg')"; if($query = mysqli_query($connect,$sql)) echo "Ваш отзыв добавлен, спасибо!
"; else echo "Ваш отзыв не добавлен!
"; header("Location: " . $_SERVER["PHP_SELF"]); } ?>
Перезапрос ввода переменных
Не могу никак сделать цикл do while для пере запроса ввода переменной. Мне нужно что бы когда я.
Получение методом GET содержимое страницы
Здравствуйте надо на с# получить содержимое страницы http://site.ru/file.php Содержимое страницы.
Передача методом Post без перезагрузки страницы
Всем привет ! Написал обработчик через ajax post запрос, чтоб он обновлял данные формы без.
Сообщение от Андрей Бойченко
pav1uxa, даже поставив все выводы после того как посылаю заголовок переадрессация идет на главную страницу
Сообщение от Андрей Бойченко
header("Location: " . $_SERVER["REQUEST_URI"]);
Во избежание дубликатов заведите капчу. А вообще нормальные браузеры при обновлении формы, полученной методом POST, спрашивают, нужно ли отправлять данные повторно или нет.
Сообщение от miketomlin
А вообще нормальные браузеры при обновлении формы, полученной методом POST, спрашивают, нужно ли отправлять данные повторно или нет.
А нормальные программисты пишут так, чтобы нормальные браузеры не задавали нормальным пользователям лишние вопросы.
Тогда вам как нормальному программисту нужно было рассказать человеку, как при таком подходе выводить подтверждение. 303-й заголовок тоже не помешает отправлять.
miketomlin, pav1uxa, если есть более корректные способы реализации моей задачи то подскажите пожалуйста или укажите в какую сторону смотреть. Я настроен на максимальное юзабилити и не возьмусь за разработку реального заказа пока не буду делать 100% удобные и качественные продукты)
ОК, в двух словах. Как вам в самом начале сказал pav1uxa, нужно делать либо перенаправление, либо вывод контента. Насколько я понял из ваших слов, у вас страница формы и страница результата объединены. К тому же вы используете перенаправление. При таком подходе вам необходимо как-то сообщать вашей странице, когда нужно выводить подтверждение (результирующее сообщение), а когда нет. Для этого обычно используют либо куки, либо чисто формально разделяют страницу формы и страницу результата, используя для перенаправления доп. адрес(а) (я, например, когда использую данный подход, при перенаправлении добавляю к адресу страницы параметр ?p=1 – мне обычно достаточно только одного доп. адреса, т.к. при ошибках я практически всегда использую традиционный подход с непосредственным выводом формы и восстановлением введенных пользователем значений полей). При перенаправлении на страницу результата лучше использовать 303-е перенаправление. Спеки говорят, что оно предназначено именно для этой цели, т.е. чтобы попросить клиент в данной ситуации сделать именно GET-запрос.
Как отправить через jquery ajax, get параметры?
Мои коллеги говорят все верно, разберемся еще раз с запросом к серверу (к php-файлу):
jQuery.ajax() с GET-запросом можно заменить на jQuery.get()
Немного простой теории:
Когда Вы вручную пробуете организовать Get-запрос, то Вы просто в браузере запрашиваете ссылку со своими параметрами. Когда страница загрузилась — запрос к файлу выполнился.
mysite.ru/action.php?param=value
То есть, грубо говоря, чтобы скрипт выполнился, нужно просто запустить (задействовать) нужный файл. Что и делает Ajax. Он просто открывает (как Вы в браузере) эту страницу, но вы этого не видите.
Причем, он делает это асинхронно (код будет работать и дальше, не ожидая ответа), для чего нужны колбеки (функции, которые выполняются после успешного/неуспешного запроса).
//В этом случае просто выполнился скрипт $.get('http://mysite.ru/action.php'); //Параметры можно отправить как в ссылке, так и отдельно $.get('http://mysite.ru/action.php?param=1'); //или $.get('http://mysite.ru/action.php', ); //а что на счет колбеков? //они нужны, чтобы выполнить какой-либо код после выполнения запроса //ну, например, если после успешного запроса пишется "ok" в action.php $.get('http://mysite.ru/action.php', ).done(function(data) < //data - это аргумент, в который передается содержимое страницы if(data=="ok")< alert("Сервер всем доволен") >>);