Приветствую всех! Есть необходимость организовать на сайте заполнение многостраничной анкеты. Например, на первой странице - Ф.И.О, нажатие на кнопку "Далее", грузится вторая страница, на ней - место работы, должность и т.д., нажатие на кнопку "Далее", грузится третья страница - и так далее. [1] --> [2] --> [3] --> [4] --> [5] На последней (пятой) странице есть кнопка "Завершить", при нажатии которой все данные должны быть вставлены в MySQL-базу. Вопрос: как передать данные с первой, второй, третьей (и т.д.) страницы в последнюю, чтобы они все были сохранены в базу? Сессии или куки? Буду благодарен за алгоритм или готовый кусок кода, который смогу приспособить под свои нужды. Спасибо!
Вот я и споткнулся, уважаемые Господа и Дамы... Я, конечно, мог неправильно понять механизм сессий, но вроде бы всё прочёл. Суть в следующем. Есть форма: HTML: <form id="mainform" name="mainform" method="post" action="step3.php" onsubmit="return CheckFields();"> <input name="FORM_Name" type="text" size="30" maxlength="30" /> <input name="FORM_City" type="text" size="30" maxlength="60" /> <input name="FORM_Occupation" type="text" size="50" /> <input name="FORM_Email" type="text" size="60" /> <input type="submit" name="Submit" value="Далее..." /> </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). Если я всё же не до конца читал МАНы (а они, как известно - рулез!) - ткните плиз, где описывается именно мой случай. А именно - передача значений из формы через сессию на другую страницу.
Сколько всего вопросов? Мне кажется, что лучше делать на яваскрипте, как сказал dark-demon. Во-первых, не нужно ждать загрузки следующих вопросов. Во-вторых, меньше нагрузка на сервер. В-третьих, без проблем можно вернуться назад.
Вопросов штук 20 с небольшим (3 страницы по 7-8 полей). Даже если делать на яваскрипте - мне ж всё равно эти данные в базу надо запихнуть...