@Lakalut22

Как сделать многостраничный тест с выбором правильных ответов, с аудиоматериалами и картинками в них?

Как можно реализовать многостраничность у теста, допустим так, чтобы можно было разбить, грубо говоря, по структуре:
1блок - 3 страницы вопрос с выпадающим списком + с выбором из ответов,
2блок - 3 страницы с аудио и картинкой и вопросами с выбором из ответов,
3 блок - 1 страница с вопросами с выбором из ответов
, но с возможностью перехода между разделенными страницами(с третьей страницы сверху нажав на кнопку 1 вернуться к первым вопросам, но чтобы на других страницах(как и на первой) ответы сохранились).
После теста посчитать кол-во правильных ответов и вывести уровень отвечающего(5 правильных - плохо, 10-хорошо условно.)

В голове много кусков, которые приложу, помогите собрать все воедино) буду крайне благодарен.
С аудио и картинкой - не умею делать(

Вопрос с ответом внутри предложения.
<label for="street">1. Вопрос?</label><br>
        <p>
        How old
        
        <select name="street" id="select">
            <option>Выбрать</option>
            <option value="0">is</option>
            <option value="0">there</option>
            <option value="1">are</option>
            <option value="0">than</option>
        </select>
        
        you?
        </p>


Вопрос с выбором одного из 4

<div class="quizsection">
  
    <h2>2. Вопрос ?</h2>
     
    <div class="answer">
        <input name="q1" value="true" id="value1" type="radio" checked="checked" /> Ответ 1
    </div>
  
    <div class="answer">
        <input name="q1" value="false" id="value2" type="radio" /> Ответ 2
    </div>
  
    <div class="answer">
        <input name="q1" value="false" id="value3" type="radio" /> Ответ 3
    </div>
  
    <div class="answer">
        <input name="q1" value="false" id="value4" type="radio" /> Ответ 4
    </div>
</div>


метод обработки ответов
<script type="text/javascript">
 
   var result;
    
   function check()
 
   {
 
      var question;
      var true;
      var false;
       
       
      question = 1;
      true = 0;
      false = 0;
       
       
      result = "";
 
      var choice;
       
      for (question = 1; question <= 3; question++) {
       
         var q = document.forms['quiz'].elements['q'+question];
 
            for (var i = 0; i < q.length; i++) {
               if (q[i].checked) {
                  choice = q[i].value;
               }
            }
 
            if (choice == "false") {
               value1++;
            }
 
            if (choice == "true") {
               value2++;
            }
 
 
         }
 
      if (true == 0) {
         // Нет правильных ответов
         result = "ocenka2";
      }
 
      else if (true == 1) {
 
         // Один правильный ответ
         result = "плохо";
      }
 
      else if (true == 2) {
         // Два правильных ответа
         result = "хорошо";
      }
 
      else if (true == 3) {
         // Три правильных ответа
         result = "отлично";
      }
 
 
      else {
         result = "404";
      }
   }
</script>
  • Вопрос задан
  • 235 просмотров
Пригласить эксперта
Ответы на вопрос 1
AlexNest
@AlexNest
Работаю с Python/Django
Тут cookie использовать нужно: https://learn.javascript.ru/cookie
По хорошему, если планируется полноценный сайт, данные обрабатывать и создавать куки нужно на стороне сервера (php/node.js...), но можно и с помощью jquery.
После полученные данные сохранить в куки и дальше с ними работать:
<!DOCTYPE html>
<html>
<head>
	<title>Meter</title>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.0/jquery.min.js"></script>
</head>
<body>
<form method="POST" id="myForm">
	<input name="q1" value="1231" id="value1" type="checkbox"  /> 
	<input name="q1" value="false" id="value1" type="checkbox"  /> 
	<input name="q1" value="1231" id="value1" type="checkbox"  /> 
	<input type="button" name="" id="btn" value="1">
</form>

<script type="text/javascript">
$( document ).ready(function() {
	 $('#myForm').find ('input, textearea, select').each(function() {
	 
	  
	  let value = $(this).val()//Получаем значение инпута
	  if (value == 1231) {//Вместо цифр подставить сравнение с куки
	  	
	  	$(this).prop('checked', true);//Установка элементу свойства checked
	  }

	  
});
});
</script>
</body>
</html>
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы