[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: разделение анкеты на несколько страниц
aryumin
Здравствуйте
подскажите, пожалуйста, как я могу разбить анкету на несколько частей.
Суть в слудующем: есть анкета из форм, например, на 4 вопроса
1. Пол
2. Возраст
3. Образование
4. Профиль работы
ну и кнопка отправить, разумеется... У каждого из вопросов заданный набор ответов соответственно...

Как сделать анкету на одной странице я уже знаю. Респондент заполняет анкету, данные заносятся в одну строку в БД mysql. Но мне нужно научиться разбивать анкету на несколько страниц. Выглядеть это должно вот так:

стр. 1
1. Пол
2. Возраст
кнопка "далее"

стр 2
3. Образование
4. Профиль работы
кнопка "готово".

Данные соответственно должны выгружаться только на одну строку в БД. Как реализвать это на нескольких строка х я представляю (первые два вопроса на одну строку, другие 2 на вторую строку), но это разумеется никуда не годится...

Обрабатывается сейчас моя анкета на одну страницу файлом php3 и в нём вот такое содержание:

<?
$hostname = "localhost";
$username = "root";
$password = "пароль";
$dbName = "имя бд";
$userstable = "имя таблицы";
MYSQL_CONNECT($hostname,$username,$password) OR DIE("Не могу создать соединение ");
mysql_query("SET NAMES utf8");
mysql_query("SET CHARACTER SET utf8_general_ci'" );
@mysql_select_db("$dbName") or die("Не могу выбрать базу данных ");
$query="INSERT INTO `имя таблицы`(pol,vozrast,education,work);

VALUES ('
$_POST[pol]','$_POST[vozrast]','$_POST[education]','$_POST[work]');
if (!
$result) {
print
$query . "";
die('Неверный запрос: ' . mysql_error());
}
PRINT "
Спасибо за участие!";
echo "
<a title='Вернуться на сайт' href='http://www.soc-data.ru/'>
Вернуться на сайт</a>";
MYSQL_CLOSE();
?>


Извините, а что надо добавить в код, чтобы данные первой страницы как-то сохранялись при переходе на вторую и уже потом при нажатии кнопки ГОТОВО отправлялись в БД? Или может быть ещё какое-то решение есть?
Спасибо!

P.S. насколько я знаю, можно как-то работать со скрытыми формами, которые собирают данные с прошлой страницы и переносят на новую, но я не знаю как это делается. Или вроде бы с сессиями можно работать, но опять же - только начинаю разбираться в php. Подскажите, пожалуйста, какой вариант по-проще



Спустя 14 часов, 13 минут, 30 секунд (7.05.2012 - 14:29) walerus написал(а):
Цитата
Подскажите, пожалуйста, какой вариант по-проще
Оба варианты не сложные, можно и скрытыми полями можно и сессией, можно и яваскрипт повесить и AJAX что бы не все формы сразу появлялись, все зависит от Ваших желаний и возможностей .

Спустя 2 часа, 38 минут, 12 секунд (7.05.2012 - 17:07) aryumin написал(а):
ну у меня жедание просто разбить анкету на части. Анкеты большие, как вот, например, эта
А как это с помощью сессий делается? большой там код используется?

Спустя 16 часов, 4 минуты, 6 секунд (8.05.2012 - 09:11) Adamant написал(а):

// в первой строке скрипта инициализируем сессию, теперь мы можем читать и записывать в суперглобальный массив - $_SESSION
// который при обновлении страницы не потеряется:

session_start();

if ("проверяем нажали ли первую форму есть ли данные из нее, если нет
то выводим первую ее часть"
) {
// выводим первую часть формы
//..
//..

} else {
// если первую форму нажали (есть данные из нее)
// то в суперглобальный массив $_SESSION вставляем все данные из первой формы
// например
// $_SESSION['name'] = $_POST['name'];

// Затем после того как запомнили все данные в сессии
// выводим ее вторую часть (форму)

}


http://phpfaq.ru/sessions
http://php.net/manual/ru/function.session-start.php

Спустя 20 минут, 30 секунд (8.05.2012 - 09:32) aryumin написал(а):
спасибо, Adamant! Буду разбираться!

Спустя 9 часов, 30 минут, 49 секунд (8.05.2012 - 19:03) walerus написал(а):
aryumin - "Перелистывание" анкеты, иногда надоедает, учтите это ), что бы человек перелистывая заполняя анкету, не закрыл броузер раньше времени ).

Спустя 58 минут, 40 секунд (8.05.2012 - 20:01) aryumin написал(а):
Цитата (walerus @ 8.05.2012 - 17:03)
aryumin - "Перелистывание" анкеты, иногда надоедает, учтите это ), что бы человек перелистывая заполняя анкету, не закрыл броузер раньше времени ).

спору нет - может надоесть. Просто хочется разбивать анкеты на страницы 2-3 небольшие - просто для компактности отображения вопросов smile.gif
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.