За последние 24 часа нас посетили 34879 программистов и 1753 робота. Сейчас ищут 763 программиста ...

Многостраничная анкета. Переменные.

Тема в разделе "PHP для новичков", создана пользователем SkyKiller, 21 янв 2008.

  1. SkyKiller

    SkyKiller Активный пользователь

    С нами с:
    1 ноя 2007
    Сообщения:
    166
    Симпатии:
    0
    Адрес:
    Новосибирск
    Приветствую всех!

    Есть необходимость организовать на сайте заполнение многостраничной анкеты. Например, на первой странице - Ф.И.О, нажатие на кнопку "Далее", грузится вторая страница, на ней - место работы, должность и т.д., нажатие на кнопку "Далее", грузится третья страница - и так далее.

    [1] --> [2] --> [3] --> [4] --> [5]

    На последней (пятой) странице есть кнопка "Завершить", при нажатии которой все данные должны быть вставлены в MySQL-базу.
    Вопрос: как передать данные с первой, второй, третьей (и т.д.) страницы в последнюю, чтобы они все были сохранены в базу? Сессии или куки?
    Буду благодарен за алгоритм или готовый кусок кода, который смогу приспособить под свои нужды.
    Спасибо!
     
  2. 440Hz

    440Hz Старожил
    Команда форума Модератор

    С нами с:
    21 дек 2012
    Сообщения:
    8.003
    Симпатии:
    1
    Адрес:
    Оттуда
    в сессии храни.
     
  3. dark-demon

    dark-demon Активный пользователь

    С нами с:
    16 фев 2007
    Сообщения:
    1.920
    Симпатии:
    1
    Адрес:
    леноград
    грузи одну большую форму и переключай страницы яваскриптом
     
  4. Elkaz

    Elkaz Старожил
    Команда форума Модератор

    С нами с:
    26 июн 2006
    Сообщения:
    3.373
    Симпатии:
    0
    Адрес:
    Баку, Азербайджан
    Сессии
     
  5. SkyKiller

    SkyKiller Активный пользователь

    С нами с:
    1 ноя 2007
    Сообщения:
    166
    Симпатии:
    0
    Адрес:
    Новосибирск
    440Hz, понял, буду смотреть.

    dark-demon, а не громоздко ли это будет?
     
  6. dark-demon

    dark-demon Активный пользователь

    С нами с:
    16 фев 2007
    Сообщения:
    1.920
    Симпатии:
    1
    Адрес:
    леноград
    не, нормально. при желании в сети можно найти уже готовые библиотеки.
     
  7. SkyKiller

    SkyKiller Активный пользователь

    С нами с:
    1 ноя 2007
    Сообщения:
    166
    Симпатии:
    0
    Адрес:
    Новосибирск
    Вот я и споткнулся, уважаемые Господа и Дамы...

    Я, конечно, мог неправильно понять механизм сессий, но вроде бы всё прочёл. Суть в следующем. Есть форма:
    HTML:
    1. <form id="mainform" name="mainform" method="post" action="step3.php" onsubmit="return CheckFields();">
    2. <input name="FORM_Name" type="text" size="30" maxlength="30" />
    3. <input name="FORM_City" type="text" size="30" maxlength="60" />
    4. <input name="FORM_Occupation" type="text" size="50" />
    5. <input name="FORM_Email" type="text" size="60" />
    6. <input type="submit" name="Submit" value="Далее..." />
    7. </form>
    (естественно, session_start присутствует)
    Проверяю форму на валидность следующим скриптом (при нажатии кнопки "Далее..."):
    [js]<script language="javascript">
    <!--
    function CheckFields()
    {
    if ( (document.forms.mainform.FORM_Name.value == "") ) {
    alert("Enter your name!");
    document.forms.mainform.FORM_Name.focus();
    return false; }

    if ( (document.forms.mainform.FORM_City.value == "") ) {
    alert("Enter City!");
    document.forms.mainform.FORM_City.focus();
    return false; }

    if ( (document.forms.mainform.FORM_Occupation.value == "") ) {
    alert("Enter Occupation!");
    document.forms.mainform.FORM_Occupation.focus();
    return false; }

    if ( (document.forms.mainform.FORM_Email.value == "") ) {
    alert("Enter your E-mail address!");
    document.forms.mainform.FORM_Email.focus();
    return false; }

    if (! (/^\w+[-_\.]*\w+@\w+-?\w+\.[a-z]{2,4}$/.test(document.forms.mainform.FORM_Email.value)) ) {
    alert("Enter correct E-mail address!");
    document.forms.mainform.FORM_Email.focus();
    return false; }

    return true;
    }

    //-->
    </script>[/js]
    Естественно, как и должно быть, при нажатии на кнопку "Далее..." происходит передача управления скрипту step3.php.

    А теперь, уважаемые Знатоки, внимание! Вопрос:
    Скажите за одну минуту, как перед передачей управления скрипту step3.php предварительно записать значения формы FORM_Name, FORM_City, FORM_Occupation, FORM_Email в переменные сессии?
    Эти переменные будут использоваться на второй странице (step3.php).

    Если я всё же не до конца читал МАНы (а они, как известно - рулез!) - ткните плиз, где описывается именно мой случай. А именно - передача значений из формы через сессию на другую страницу.
     
  8. SkyKiller

    SkyKiller Активный пользователь

    С нами с:
    1 ноя 2007
    Сообщения:
    166
    Симпатии:
    0
    Адрес:
    Новосибирск
    И тишина... Понял, отстал...
     
  9. Kreker

    Kreker Старожил

    С нами с:
    8 апр 2007
    Сообщения:
    5.433
    Симпатии:
    0
    Сколько всего вопросов?
    Мне кажется, что лучше делать на яваскрипте, как сказал dark-demon.
    Во-первых, не нужно ждать загрузки следующих вопросов. Во-вторых, меньше нагрузка на сервер. В-третьих, без проблем можно вернуться назад.
     
  10. SkyKiller

    SkyKiller Активный пользователь

    С нами с:
    1 ноя 2007
    Сообщения:
    166
    Симпатии:
    0
    Адрес:
    Новосибирск
    Вопросов штук 20 с небольшим (3 страницы по 7-8 полей). Даже если делать на яваскрипте - мне ж всё равно эти данные в базу надо запихнуть...
     
  11. SkyKiller

    SkyKiller Активный пользователь

    С нами с:
    1 ноя 2007
    Сообщения:
    166
    Симпатии:
    0
    Адрес:
    Новосибирск
    Всем спасибо!
    Разобрался сам с горем пополам...