В презентации, по созданию инженерного тренажера, Людмила Анатольевна продемонстрировала возможность создания с помощью модуля Formulas выпадающих списков.
Людмила Анатольевна, разъясните, пожалуйста, как Вы это сделали?Собственно "технология" работы такого вопроса на слайде и показана: текст в фигурных скобках - стандартные поля вопроса formulas, они при загрузке страницы делаются невидимыми с помощью JavaScript (выделены жёлтым), рядом с помощью html создаётся список и заполняется нужными значениями.
Когда студент выбирает в списке какое-то значение, номер этого значения (свойство value) вставляется в скрытое поле (тем же JavaScript-ом), а при следующих загрузках страницы значение из скрытого поля вставляется в список.
Это если словами пояснить принцип.
Если JavaScript Вас не "отпугивает", я могу выложить пример такого вопроса.
По поводу его "безопасности" - JavaScript только представляет ответ в удобном виде и студенту (раскрывающийся список), и вопросу (поле с числом), посмотреть верный ответ студент не сможет, даже если очень хорошо покопается в коде.
Да, было бы очень интересно посмотреть на "внутреннюю кухню" этого вопроса.
JavaScript пока не "отпугивает", т.к. я с ним совсем не знаком, но Ваш пример с его использованием "зацепил".
Вопрос во вложении.
В вопросе одно поле с ответом, в котором ожидается одно из чисел: 0, 1 или 2 (номер цвета и номер соответствующего действия пешехода или водителя).
Список выводится элементом select, содержащим три пункта: стой (value=0), жди (value=1), иди (value=2).
Собственно JavaScript записан в конце html-кода вопроса. Важно, чтобы идентификатор d1 был одинаковым в блоке div и в скрипте.
Если на странице несколько раскрывающихся списков, им надо давать разные идентификаторы (d1, d2, d3, ...), а внутри тега script продублировать все команды нужное число раз.
Строчки, начинающиеся с // - комментарии, их можно удалить.
Будут вопросы - задавайте, охотно отвечу.
Спасибо, Буду разбираться.
Вы используете стандартные поля Formulas?
Вы используете стандартные поля Formulas?
Думаю, что да А что Вы понимаете под "стандартными полями"?
Для ввода ответа студентом я использую поля в тексте вопроса (поле вида {#имя}) и, при необходимости, поля в самом ответе (Part's text, поле вида {_0})
Под «стандартными полями» я подразумеваю поля, открывающиеся при создании вопроса: случайные, глобальные, местные и оценочные переменные, тексты вопросов и отзывы к ним, критерии оценок и т.д. То есть без использования различных сторонних инструментов программирования.
Поля типа {_0} я использую, а вот с {#имя} разобрался не до конца.
Буду пробовать.
Людмила Анатольевна, я опять по возможностям Formulas.
Могу ли я, создав списки типа
<option value="1">Двиг02</option>
<option value="2">Двиг03</option>
<option value="3">Двиг04</option> и т.д
присвоить их значения value или порядковые номера переменным в окнах Variables?
У меня это не получается.
Может есть какой-то другой способ привязать списки к простым или глобальным переменным?
присвоить их значения value или порядковые номера переменным в окнах Variables
А зачем?
В переменных хранятся начальные данные и результат (в Вашем примере "номер двигателя"). Студент выбирает в списке, например, значение "Двиг03" - соответствующий ему номер 2 попадает в скрытое поле для ответа и сверяется с верным ответом. Если ответ студента неверный, то уже неважно, какой из неверных был выбран - система всё равно его отметит красным.
То есть такой список - это всего лишь более удобный вариант ввода ответа студентом. Вместо "введите в это поле значение 1, если выбран двигатель02, значение 2 - если Двиг03, ..." отвечающему предлагается выбрать текстовое значение в списке.
Я бы хотел, чтобы при выборе , например «двиг01», учащийся получал один набор исходных данных, а при «двиг02» - другой.
Неет, в formulas так не получится. Все данные загадываются в переменных и выдаются тестируемому. А если данные студент может сам выбирать, то это уже не тест.
Подобные вещи (когда данные вводит пользователь, а система что-то просчитывает сама, а что-то от пользователя требует) я с помощью элемента База данных делаю, но там JavaScript-код уже не в три строчки...
Если всё-таки надо, чтобы студент сам выбирал тип двигателя, сделайте по тесту на каждый тип - студент выполнит тот, который ему нужен
Жалко.
Спасибо за разъяснение.