PHP: действие формы на той же странице, покажет то же самое до обновления - PullRequest
0 голосов
/ 04 января 2011

Да, у меня есть небольшая страница редактирования профиля, index.php?mode=profile. Давайте возьмем имя пользователя в форме editprofile в качестве примера. Имя пользователя уже находится в поле username. Поэтому я сменил «Питер» на «Томь» и нажал «Сохранить».

Действие ?mode=profile&edit=true. Так что теперь, когда я нажал «Сохранить», он обновил столбец в БД от Питера до Тома. Но в этом поле остается значение «Питер», пока я не нажму кнопку «Обновить» (или клавишу F5), и появится «Том». Как будто он ничего не обновил в базе данных, хотя он и сделал, но все равно показывает Питера до следующего обновления .. вроде он кеширует, но ничего не должен кешировать?

Любая помощь в этом? Это потому, что он находится на той же «странице» / файле? что я могу сделать

Ответы [ 4 ]

0 голосов
/ 04 января 2011

HTTP предоставляет два метода: POST и GET.С URL, начинающимся с? Param = вы фактически используете GET.«GET» следует использовать тогда и только тогда, когда обработка формы является идемпотентным запросом (т. Е. Содержимое страницы НЕ изменяется запросом).

Если ваша форма изменяет данные, вам следует использовать метод POST.

0 голосов
/ 04 января 2011

Скорее всего, вы рендеринг страницы, прежде чем делать какие-либо изменения профиля. Убедитесь, что вы имеете дело с изменениями в профиле, прежде чем его отобразить (т. Е. Все вызовы вашей базы данных для обновления значений должны быть перед операторами SELECT для отображения страницы).

0 голосов
/ 04 января 2011

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

Например,

Давайте рассмотрим пример поля имени пользователя -

<input type="text" name="username" value='<?php echo $_POST['username']?>' />

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

В приведенном выше примере я не чистил данные поста, убедитесь, что вы используете очищенные данные поста. в реальном сценарии.

0 голосов
/ 04 января 2011

Я думаю, что вы сначала получаете данные, помещаете их в форму, а затем обновляете содержимое базы данных. Сначала вы должны обновить содержимое базы данных при отправке формы. Выборка и создание формы должны быть следующим шагом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...