Необходимо реализовать систему проверки ответов пользователя на тест.
В данный момент структура видится такой:
1) Есть таблица MySQL с тремя столбцами: ID билета; Вопросы; Ответы
2) По ID билета на страницу вытаскивается текст вопросов. Это кусок html кода (он есть в примере во вложении), где среди пунктов есть варианты выбора выпадающие списки или поля для ввода текста, где пользователь должен, соответственно выбрать вариант или заполнить пропуск. Таких элементов в каждом вопросе можно быть много (от одного до 100).
3) В таблице (в столбце ответов) через точку с запятой (;) указанны правильные ответы в том же порядке, в каком они есть в вопросах
4) Человек получил текст вопросов на странице, отметил варианты в выпадающих списках, заполнил поля, если есть, нажал на кнопку "проверить". Надо:
а) проверить все ли выпадающие списки заполнены вариантами (по-умолчанию там везде первый пункт выбран "...") и все ли текстовые формы заполнены, если нет подсветить эти элементы (или какой-то символ возле них нарисовать), вывести уведомление о том, что надо заполнить все поля, дать возможность исправить и отправить на проверку снова
б) Если всё заполнено сверить введенные ответы с правильными из базы данных, если всё верно скрыть блок с вопросами и вывести на его месте сообщение об успехе плюс обязательно вывести количество правильных ответов.
в) Если всё заполнено, но часть вопросов оказались не верными (после проверки по базе), подсветить (или каким-то образом отметить) неправильные ответы и вывести возле каждого правильный ответ, вместо кнопки "проверить" вывести блок с сообщением о том, сколько было допущено ошибок.
Во вложении пример html-файла со списком вопросов и элементами для выбора вариантов ответов и файл со списком правильных ответов. Предполагаю, что понадобится JS и Ajax и прочие плюшки. Возможно к коду вопросов надо будет добавить какие-то div`ы и т.п. Важно также проверять текстовые поля ввода на предмет наличия вредоносного кода.
В общем жду ваших мыслей по поводу реализации и стоимости)
Опубликован 05.04.2017 в 14:46
Заказ находится в архиве