Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 21.03.2012, 22:28
Профессор
Отправить личное сообщение для KamalovRadik Посмотреть профиль Найти все сообщения от KamalovRadik
 
Регистрация: 03.08.2011
Сообщений: 150

Создание теста
Хочу создать тест. В БД имею 200 вопросов, по 3-4 вариантов ответа в каждом. Выводить буду случайных 20 вопросов.

Вопрос: Как отвечать пользователю и как его ответы потом сравнить с правильными ответами? Перед каждым вариантом ответа поставить радио-кнопку, то как это связать с вариантами ответов. Как и где лучше хранить правильный ответ? + расположение вариантов ответа всегда меняется.
Ответить с цитированием
  #2 (permalink)  
Старый 21.03.2012, 23:05
sinistral
Посмотреть профиль Найти все сообщения от melky
 
Регистрация: 28.03.2011
Сообщений: 5,418

создать таблицу с "пользователями".

когда посетитель сайта заходит на сайт - ему присваивается кука (сессия, пущай), и он становится "пользователем"

он отвечает на вопросы, а в базе в отдельной таблице сохраняется : ID (кука) пользователя, и его варианты ответов.

когда он через время заходит на сайт, читаете куку и "авторизируете" его.

PS облагородьте куку, чтобы даже если её и спёрли, то вор не смог бы авторизироваться под чужой кукой.

PSS если не хотите морочиться с таким видом авторизации\регистрации, введите её настоящую - с именем и паролем.
Ответить с цитированием
  #3 (permalink)  
Старый 22.03.2012, 01:33
Аватар для T-sh
Профессор
Отправить личное сообщение для T-sh Посмотреть профиль Найти все сообщения от T-sh
 
Регистрация: 04.12.2009
Сообщений: 579

1. Как отвечать пользователю и как его ответы потом сравнить с правильными ответами? Перед каждым вариантом ответа поставить радио-кнопку, то как это связать с вариантами ответов.

Да, можно радио-батон и из формы отправлять значения в обработчик, можно просто списком, а по клику с помощью js обрабатывать и формировать массив, который потом также отправлять в обработчик.

Связать с вариантами ответов просто:
<span>Вопрос 1: Кто шел по шоссе?</span>
   <input type="radio" name="vopros_1" value="Masha"> Маша<Br>
   <input type="radio" name="vopros_1" value="Petya"> Петя <Br>
   <input type="radio" name="vopros_1" value="Gadya"> Гадя Петрович<Br>
....
   <span>Вопрос 5: Кто убил Кенни?</span>
   <input type="radio" name="vopros_5" value="Vasya"> Вася<Br>
   <input type="radio" name="vopros_5" value="Kolya"> Коля <Br>
   <input type="radio" name="vopros_5" value="Grisha"> Гриша<Br>
...


2. Как и где лучше хранить правильный ответ?
В базе данных, естественно Создаешь таблицу:
id;
номер вопроса;
текст вопроса;
вариант ответа 1;
вариант 2;
вариант 3;
вариант 4;
правильный ответ;


и вторую таблицу для пользователей:
id (id сессии / имя / email — не важно, любой идентификатор );
answers; в формате № вопроса : ответ; № вопроса : ответ; .... № вопроса : ответ;



Ну, а потом остается сначала записать полученные ответы в базу, а потом достать их оттуда и сравнить А если не нужно хранение ответов пользователя, то лучше сразу собрать все его ответы, и сравнить с теми, что есть в таблице вопросов. Не сохраняя ничего.

Но если сохранять, есть большой плюс, при следующем посещении можно вывести пользователю вопросы, на которые он ещё не отвечал, т.е. уже будут известны номера отвеченных вопросов
__________________
С моих слов записано верно.
Ответить с цитированием
  #4 (permalink)  
Старый 22.03.2012, 09:39
Аватар для T-sh
Профессор
Отправить личное сообщение для T-sh Посмотреть профиль Найти все сообщения от T-sh
 
Регистрация: 04.12.2009
Сообщений: 579

Сообщение от nasqad Посмотреть сообщение
questions
 - id
 - body
answers
 - id
 - question_id
 - body
 - istrue
user_answers
 - user_id
 - question_id
 - answer_id

голосую за такой вариант, не силен в конструировании бд, просто жду критики
этот вариант хорош, когда не знаешь, сколько вариантов ответа будет на каждый вопрос, а у автора вроде как точное значение.

имхо, не вижу смысла создавать в данном случае ещё одну таблицу ) если только для того, чтоб самому удобнее было ориентироваться в базе.
__________________
С моих слов записано верно.
Ответить с цитированием
  #5 (permalink)  
Старый 23.03.2012, 02:18
Профессор
Отправить личное сообщение для KamalovRadik Посмотреть профиль Найти все сообщения от KamalovRadik
 
Регистрация: 03.08.2011
Сообщений: 150

id;
номер вопроса;
текст вопроса;
вариант ответа 1;
вариант 2;
вариант 3;
вариант 4;
правильный ответ;


Не совсем понятно для чего использование номер вопроса если есть id.

<input type="radio" name="vopros_5" value="Vasya"> Вася<Br>

Из данной таблицы что помещать в value? Весь вариант ответа? Не слишком ли много информации придется передавать обработчику?

А если посмотреть какой вариант ответа правильный и дать ему номер в БД, то как решить вопрос, что порядок вариантов ответа будет меняться.

Последний раз редактировалось KamalovRadik, 23.03.2012 в 02:22.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Создание теста на JS сложная система Berowz Общие вопросы Javascript 7 10.03.2012 23:42
Создание скрипта "Итеррационные циклы" по формуле krasopetka Общие вопросы Javascript 0 17.11.2011 12:42
Сохранение результата теста в файл sansanych Общие вопросы Javascript 7 20.04.2011 22:19
Создание скрипта! Создание диктанта для учеников! Елизавета Работа 10 30.06.2010 21:00
Повторное создание iframe Smoke Events/DOM/Window 7 07.02.2009 15:14