Сохранение данных

Если форма для ввода данных содержит несколько полей, а ошибку пользова­тель допустил при заполнении только некоторых из них, разумно сохранить корректные данные при повторном выводе формы, чтобы пользователю не при­шлось бы вводить верные данные заново. Этот подход продемонстрирован в примере, который содержит форму из двух полей, обязательных для ввода. Если пользователь заполнит только одно поле из двух, то при нажатии кнопки «ОК» будет сформировано соответствующее сообщение об ошибке, но уже введенное значение сохранится, и пользователю не придется набирать его повторно.

code: #php
<HTML>
<HEAD>
<TITLE>Кодирование тегов</TITLE>
</HEAD>
<BODY>
<CENTER>
<H1>Кодирование тегов</H1>
<?php
 
$errors = array();
if (isset($_REQUEST["seen_already"])) {
  validate_data();
 
  if (count($errors) > 0)) {
    display_errors();
    display_form();
  } else {
    process_data();
  }
} else {
  display_form();
}
 
function validate_data() {
  global $errors;
 
  if ($_REQUEST["FirstName"] == "") {
    $errors[] = "<FONT COLOR='RED'>Имя обязательно для ввода</FONT>";
  }
 
  if($_REQUEST["LastName"] == "") {
    Serrors[] = "<FONT COLOR='RED'>Фамилия обязательна для ввода</FONT>";
  }
}
 
function display_errors() {
  global $errors;
 
  foreach ($errors as $err) {
    echo $err, "<BR>";
  }
}
 
function process_data() {
  echo "Ваше имя: ";
  echo $_REQUEST["FirstName"];
  echo "<BR>Bama фамилия:   ";
  echo $_REQUEST["LastName"];
}
 
function display_form() {
  $first_name = isset($_REQUEST["FirstName"]) ? $_REQUEST["FirstName"] :  "";
  $last_name = isset($_REQUEST["LastName"]) ? $_REQUEST["LastName"] : echo "<FORM METH0D='POST' ACTI0N='phprestore.php'>";
  echo "Введите Ваше имя";
  echo "<INPUT NAME='FirstName' TYPE='TEXT' VALUE='", $first_name, "'>";
  echo "<BR>";
  echo "Введите Вашу фамилию";
  echo "<INPUT NAME='LastName'  TYPE='TEXT'  VALUE='", $last_name, "'>";
  echo "<BR>";
  echo "<INPUT TYPE='SUBMIT' VALUE='OK'>";
  echo "<INPUT TYPE='HIDDEN' NAME='seen_already' VALUE='data'>";
  echo  "</F0RM>";
}
?>
</CENTER>
</BODY>
</HTML>

На рисунке приведен пример результата выполнения этого скрипта в том случае, если пользователь не ввел фамилию. Видно, что введенное имя сохрани­лось в форме.

результат выполнения примера
Книга: PHP в примерах. Купить книгу
Автор: Стивен Хольцнер. Переводчик: С. Банников
Поделиться:

Похожие статьи: