Думаю, многие из Вас встречали сайты, где Вы полчаса заполняли какую-нибудь форму, затем у Вас была какая-то ошибка, и Вы возвращались обратно к форме, однако, все данные были стёрты. Чтобы так не бесить пользователей, надо обязательно позаботиться о сохранении данных в форме. И об этом я сегодня расскажу.
Начнём с самого простого, а именно с использования атрибута autocomplete:
<form autocomplete="on">
Теперь браузер будет сохранять введённые ранее в эту форму данные. Однако, есть один нюанс. Это сохранение зависит от настроек браузера, и далеко не всегда, во-первых, сработает, а, во-вторых, сработает как надо. Поэтому я использую второй, более сложный, но и более надёжный способ.
Состоит он в том, что после передачи формы, все данные оттуда сохраняются в сессию, а при возврате обратно данные из сессии подставляются в форму.
Например, вот такой PHP-скрипт всё это делает:
<?php
session_start();
$_SESSION["name"] = $_POST["name"];
$_SESSION["email"] = $_POST["email"];
header("Location: ".$_SERVER["HTTP_REFERER"]);
exit;
?>
И теперь HTML-код формы:<form name="myform" action="request.php" method="post">
<input type="text" name="name" value="<?=$_SESSION["name"]?>" />
<input type="text" name="email" value="<?=$_SESSION["email"]?>" />
<input type="password" name="password" />
</form>
Вот так подставляются сохранённые данные в форму. Более того, Вы вправе выбирать, какие данные сохранять, а какие нет. Например, пароль сохранять однозначно не стоит, так же не стоит сохранять ввод капчи и другие аналогичные данные.
Отзывы