Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Как лучше написать скрипт теста (https://javascript.ru/forum/jquery/33528-kak-luchshe-napisat-skript-testa.html)

Dimaz 26.11.2012 19:04

Как лучше написать скрипт теста
 
Приветствую всех. На сервере в БД, в таблице "Tests", имеется 3 поля: "test_id"(id теста) "questions"(список вопросов, перечисленных через запятую), "answers"(список ответов, перечисленных через запятую). С помощью php-скрипта отправляю эти данные клиенту:
$m_query = mysql_query("SELECT * FROM `tests` WHERE `test_id` = '". $answer_id ."'");
$row = mysql_fetch_array($m_query, MYSQL_ASSOC);
echo json_encode($row);

Клиенту приходят данные в формате json:
{"test_id": "1", "questions": "How are you:, How old are you:", "answers": "ok, bad, 14-18, 18-22"}

Чтобы вставить эти данные в форму я преобразую эти строки в массив методом split(','). Пишу запятую в параметре метода, чтобы разделить строку на элементы:
var x = data.questions.split(',');
var y = data.answers.split(',');

Теперь у меня есть 2 переменные, содержащие 2 массива, один с вопросами, другой с ответами. Я хочу, чтобы в браузер выводился сначала первый вопрос и варианты ответов, ему соответствующие. Пользователь выбирает вариант ответа, нажимает кнопку Далее и загружается второй вопрос и варианты ответов к нему. Думаю реализовать все это с помощью цикла for. Но как сделать так, чтобы он выводил не сразу все вопросы и ответы, а только один вопрос и ответы относящиеся к этому вопросу. И еще если цикл будет подгружать следующий вопрос с ответами, меняя значения элементов формы, как сделать, чтобы выбранный пользователем вариант предыдущего вопроса сохранялся. Может создать какой-то скрытый элемент в форме, куда будет записываться id выбранного ответа, после нажатия кнопки Далее и смены вопроса.

ksa 27.11.2012 09:09

Цитата:

Сообщение от Dimaz
С помощью php-скрипта отправляю эти данные клиенту

Если есть серверный язык, зачем тогда слать весь тест сразу и потом мутить что-то на клиенте?
Таки и шли порциями. Текущий вопрос с вариантами ответов... Ответ тестируемого опять шли на сервер, пусть там они и храняться...
Потом опять пришлёш результат того тестирования, если нужно.

cmd 28.11.2012 16:08

Или так как сказал ksa или можно questions и answers сразу возвращать как массив и перебирать циклом each (мы же в ветке jQuery).


Часовой пояс GMT +3, время: 00:44.