Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Запомнить введённые поля 
:(
    Опции темы
supercelt
Дата 6.6.2009, 00:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 658
Регистрация: 25.8.2005

Репутация: нет
Всего: 1



Здравствуйте, у меня вопрос.  Есть страница one.php, примерно такого содержания

Код

echo '<form.....action="test.php"....
<input type="text" name="s1" />
.
.
.
<input type="text" name="sn" />
<input type="submit" />
...</form>';


Содержание test.php

Код

$s1 = $_POST['s1'];
.
.
.
$sn = $_POST['sn'];
//Далее какие-то действия, запись в базу...

И вот если что-то не так, то

if(!mysql_query('insert...'))
{
echo '<a href="one.php">back</a>';
}


Вопрос: Как рациональнее сделать, что бы когда возвращаешься назад, поля не пришлось заполнять заново. Дело в том, что яваскриптом прописать шаг назад нельзя по заданию. 

Я мыслил, что в файле обработчике надо ловить эти переменные, делать опять форму, вставлять эти переменные в скрытые поля и как-то отправлять назад, но это наверное грамоздко... Так вот как обычно поступают в таких случаях?
PM   Вверх
bars80080
Дата 6.6.2009, 00:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 71
Всего: 315



так обычно и поступают в таких случаях


впрочем, где-то я встречал автозаполнитель форм, но он по сути тоже самое, только весь функционал скрыт в библиотеке. и имхо, потенциальная ошибка в безопасности для незадачливого кодера
PM MAIL WWW   Вверх
NNaarreekk
Дата 6.6.2009, 10:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 768
Регистрация: 23.6.2007
Где: Армения

Репутация: 0
Всего: 3



Я делаю так:
$_SESSION['save_for_back']=$_POST;
$_SESSION['error']="Причина проблемы";
header("Location:обратно.php");

A там уже:
Код

if(isset($_SESSION[error])){
$Saved=$_SESSION['save_for_back']
unset($_SESSION['save_for_back']);
echo$_SESSION['error'];
unset($_SESSION['error']);
}
//если error_reporting(E_ALL)
else{
$Saved['s1']='';
.
.
.
.
.
$Saved['sn']='';
}
echo '<form.....action="test.php"....
<input type="text" name="s1"  value="'.$Saved['s1'].'" />
.
.
.
<input type="text" name="sn"  value="'.$Saved['sn'].'" />
<input type="submit" />
...</form>';


Конечно это примерный код!
PM MAIL WWW   Вверх
mogul82
Дата 7.6.2009, 16:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 282
Регистрация: 20.11.2008

Репутация: -1
Всего: -5



Ошибки лучше хранить в куки или передовать в скрытом поле формы а форму отправлять яваСкриптом.
На худой конец сессии.
PM MAIL   Вверх
bazzjr
Дата 7.6.2009, 21:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 460
Регистрация: 27.12.2007
Где: Россия, Пермь

Репутация: 4
Всего: 6



Долго размышляя на эту тему, я пришел к выводу, что лучше всего здесь уместен AJAX и проверка форма на лету посредством явы, и позже пхп.
PM MAIL ICQ   Вверх
supercelt
Дата 7.6.2009, 21:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 658
Регистрация: 25.8.2005

Репутация: нет
Всего: 1



bazzjr, Это и реализовано во втором варианте, но есть ещё первый, где должно быть сделано всё по классической схеме. Просто в админке есть радиокнопки - включать аякс или нет, так что должно работать так и так)
PM   Вверх
bazzjr
Дата 7.6.2009, 23:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 460
Регистрация: 27.12.2007
Где: Россия, Пермь

Репутация: 4
Всего: 6



Тогда для второго варианта, лучше всего испотзовать сессии. Создать массив и загнаь его в переменную сессии. После если нужно выдрать из этой переменной сессии любые нужные тебе данные.
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0475 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.