School PHP
Вернуться на страницу трюков

Формы: поэтапное введение данных

При создании регистрации в несколько этапов стоит помнить, что это невероятно сильно нервирует любого посетителя, и им куда легче воспринимается большая форма, чем после заполнения – появляется новая, а потом снова новая. Хотя с другой стороны такие формы на несколько этапом компактны и легки в создании подходящего симпатичного дизайна.
Итак, предлагаю все формы запихнуть на одну страницу, отслеживать перемещение будем в зависимости от нажатой кнопки.
Собственно те данные, которые человек передал из первой формы во вторую будем заносить в , чтобы с одной стороны скрыть от пользователя то, что он уже ввёл, а с другой – запомнить те данные, которые он передал с предыдущей формы.

смотрим простую и удобную реализацию:
<?php
if(isset($_POST['button3'])) // третья форма была введена
{
    // получили из формы: $_POST['fio'], $_POST['text'], $_POST['title'];
    mysql_query(); // тут человек прошел уже все 3 формы.
}
elseif(isset($_POST['button1'])) // вторая форма (ввели первую)
{
    ?>
        <form method="post">
            <input type="hidden" name="fio">
            <textarea name="text"></textarea>
            <input type="submit" name="button2">
        </form>
    <?php
}
elseif(isset($_POST['button2'])) // вторая форма (ввели первую)
{
    ?>
        <form method="post">
            <input type="hidden" name="fio">
            <input type="hidden" name="text">
            <input type="text" name="title">
            <input type="submit" name="button3">
        </form>
    <?php
}
else // С этого момента начинается именно первая форма
{
    ?>
        <form method="post">
            <input type="text" name="fio">
            <input type="submit" name="button1">
        </form>
    <?php
}

Небольшое пояснение, в начале проверили, была ли нажата третья, потом первая, потом вторая, и если ни одна из предыдущих нажата не была (данные кнопки не были переданы), тогда просто выводим первую форму.
Войти | Регистрация