Кеширование формы???
Вот у меня на php-странице есть форма (положим, регистрации). Вот юзер заполняет форму, нажимает кнопку и ему выдается предупреждение, мол, не заполнил такое-то поле, и снизу ссылочка "НАЗАД".
Так вот в чем вопрос: как сделать так, чтобы при нажатии ссылки "НАЗАД", т.е. при возвращении юзера к форме, юзеру не пришлось заново забивать все поля, а только исправить свой косяк?
Народ, подскажите, плиз, а то я туплю...
Вот у меня на php-странице есть форма (положим, регистрации). Вот юзер заполняет форму, нажимает кнопку и ему выдается предупреждение, мол, не заполнил такое-то поле, и снизу ссылочка "НАЗАД".
Так вот в чем вопрос: как сделать так, чтобы при нажатии ссылки "НАЗАД", т.е. при возвращении юзера к форме, юзеру не пришлось заново забивать все поля, а только исправить свой косяк?
Следует понимать, что при нажатии на "Отправить" работает новый скрипт, который и выдаёт предупреждение?
Тогда, сделай на страничке с предупреждением еще одну форму с двумя hidden-полями, в которые записывай содержимое предыдущей формы. Соответственно, когда возвращаешь человека обратно, в соответствующие поля приставляй значение из этих полей.
Т.е., буквально это может выглядеть так:
Форма регистрации:
<input type="text" name="login" value="<? echo @$_POST['login']; ?>">
<input type="text" name="password" value="<? echo @$_POST['password']; ?>">
<input type="button" value="Отправить">
</form>
Проверка:
<form method="POST" action="<форма_регистрации.htm>">
echo "Поле не заполнено!";
<input type="hidden" name="login" value="<? echo @$_POST['login']; ?>">
<input type="hidden" name="password" value="<? echo @$_POST['password']; ?>">
<input type="button" value="Назад">
</form>
А зачем всё это?
if( !isset($_POST['submit']) )
echo $frm = ereg_replace("{:text:}", "", $frm);
else
{
/* проверка на ошибки */
if( $err == 1 )
echo $frm = ereg_replace("{:text:}", $_POST['text'], $frm);
else
echo "Success:)";
}
и без всяких хидденов)
а я бы посоветовал рендеринг формы вынести в отдельную функцию.. только первый раз рендерить с пустыми полями, а потом уже с неошибочными при ошибке... то есть что-нить типа такого...
[QUOTE]
Так я ж и спросил в конце: а зачем всё это?
Но вопрос-то был как раз про многочисленные "туда-сюда". :D
Решил проблему так:
1) Делаю форму с такими полями
2) В теге action пишу адрес этой же самой страницы.
3) Дальше проверяю на ошибки
4) Если ошибки есть - вывожу ту же самую форму, если нет - отправляю дальше.
Еще раз всем спасибо!
Спасибо всем откликнувшимся!
Решил проблему так:
1) Делаю форму с такими полями
2) В теге action пишу адрес этой же самой страницы.
3) Дальше проверяю на ошибки
4) Если ошибки есть - вывожу ту же самую форму, если нет - отправляю дальше.
Еще раз всем спасибо!
Как вариант, (чтоб народ hidden не пугать и код не загромождать) можно их в сессию пихать.
Спасибо всем откликнувшимся!
Решил проблему так:
1) Делаю форму с такими полями
2) В теге action пишу адрес этой же самой страницы.
3) Дальше проверяю на ошибки
4) Если ошибки есть - вывожу ту же самую форму, если нет - отправляю дальше.
Еще раз всем спасибо!
Самый правильный вариант.:!!!:
Самый правильный вариант.:!!!:
C моей точки зрения вопрос спорный.
Тут надо из надобностей исходить:)
Можно попробывать и это.
C моей точки зрения вопрос спорный.
Тут надо из надобностей исходить:)
Можно попробывать и это.
Можно еще поповые окошки открывать с предупреждениями и прочие понты разводить. По мне так вообще самый лучший поступок - использовать Autorization в заголовках :D