Javascript-форум (https://javascript.ru/forum/)
-   (X)HTML/CSS (https://javascript.ru/forum/xhtml-html-css/)
-   -   Создать тест Дифференциально диагностический опросник Е.А.Климов (https://javascript.ru/forum/xhtml-html-css/64570-sozdat-test-differencialno-diagnosticheskijj-oprosnik-e-klimov.html)

ГалинаS 22.08.2016 12:04

Создать тест Дифференциально диагностический опросник Е.А.Климов
 
Помогите в помощи создания теста кодом html из 20 вопросов с двумя вариантами ответов и ключом к тесту
Типы профессий Номера вопросов
Человек-природа 1а, 3б, 6а, 10а, 11а, 13б, 16а, 20а
Человек-техника 1б, 4а, 7б, 9а, 11б, 14а, 17б, 19а
Человек-человек 2а, 4б, 6б, 8а, 12а, 14б, 16б, 18а
Человек-знаковая система 2б, 5а, 9б, 10б, 12б,15а, 19б, 20б
Человек-художественный образ 3а, 5б, 7а, 8б, 13а, 15б, 17а, 18б
Брала за основу стандартный код теста-счетчика с radio, но не так и не смогла разобраться как сделать вывод теста по данному ключу:cray:

Manyasha 22.08.2016 18:43

ГалинаS, здравствуйте.
Примерно так можно:
в примере 5 вопросов и 2 группы
<script>
window.onload = function(){
	document.getElementById("res").onclick = function (){
		var sumByGroup = [0, 0];
		for (var i=1; i<=5; i++){
			name = "ques_"+i;
			answ = document.querySelectorAll('[name=' + name + ']');
			if (answ[0].checked){
			
				sumByGroup[answ[0].value-1]++;
			}else if (answ[1].checked){
				sumByGroup[answ[1].value-1]++;
			}
		}
		for (var i=0; i<sumByGroup.length; i++){
			document.getElementById("resTxt").insertAdjacentHTML("beforeEnd", "в " + (i+1) + "-й группе ответов: " + sumByGroup[i] + "<br>");
		}
	}
}
</script>
вопрос1<br>
<input type="radio" name="ques_1" value="1" id="q1_1"><label for="q1_1">группа 1</label><br>
<input type="radio" name="ques_1" value="2" id="q1_2"><label for="q1_2">группа 2</label><br>
вопрос2<br>
<input type="radio" name="ques_2" value="2" id="q2_1"><label for="q2_1">группа 2</label><br>
<input type="radio" name="ques_2" value="1" id="q2_2"><label for="q2_2">группа 1</label><br>
вопрос3<br>
<input type="radio" name="ques_3" value="2" id="q3_1"><label for="q3_1">группа 2</label><br>
<input type="radio" name="ques_3" value="1" id="q3_2"><label for="q3_2">группа 1</label><br>
вопрос4<br>
<input type="radio" name="ques_4" value="1" id="q4_1"><label for="q4_1">группа 1</label><br>
<input type="radio" name="ques_4" value="2" id="q4_2"><label for="q4_2">группа 2</label><br>
вопрос5<br>
<input type="radio" name="ques_5" value="1" id="q5_1"><label for="q5_1">группа 1</label><br>
<input type="radio" name="ques_5" value="2" id="q5_2"><label for="q5_2">группа 2</label><br>
<br>
<input type="button" id="res" value="результат">
<div id="resTxt"></div>

Rise 22.08.2016 18:52

Manyasha, если ничего не выбрать результат всё равно считается почему то...

Manyasha 22.08.2016 21:01

Rise,
спасибо, поправила свой пост))

рони 22.08.2016 21:53

Тест по классификации труда (Е.А. Климов)
 
:write:
<!DOCTYPE html>

<html>
<head>
  <title>Untitled</title>
  <meta charset="utf-8">
  <style type="text/css">
    table{
      width: 50%;
    }
   td:nth-child(2n) {
     background-color: #87CEEB;
      border-radius: 6px;

   }
   td:nth-child(2n):hover { cursor: pointer;
      color: #F0E68C;
     background-color: #1E90FF;
   }
   .active {
     display: table-row;
   }
   tr{
     display: none;
   }
   .h3{
     height: 8px;
     background-color: #8B4513;
     margin: 4px;

   }

  </style>

<script>
  var obj = {
    "Природа": ["1а", "6б", "8б", "12а", "14а", "16а", "21б", "23б", "27а", "29а"],
    "Техника": ["1б", "4а", "7а", "9а", "10б", "16б", "19а", "22а", "24а", "25б"],
    "Другие люди": ["2а", "4б", "11а", "12б", "15а", "17а", "19б", "26а", "27б", "30а"],
    "Знаковые системы": ["2б", "5а", "7б", "13а", "14б", "17б", "20а", "22б", "28а", "29б"],
    "Художественные образы": ["3а", "5б", "8а", "9б", "11б", "18а", "20б", "23а", "24б", "26б"],
    "Саморазвитие": ["3б", "6а", "10а", "13б", "15б", "18б", "21а", "25а", "28б", "30б"]
};

window.addEventListener("DOMContentLoaded", function() {
    var table = document.querySelector("table"),
        tr = table.querySelectorAll("tr"),
        num = 0,
        len = tr.length,
        arr = [];
    table.addEventListener("click", function(event) {
        var el = event.target;
        if (el.tagName == "TD") {
            var text = tr[num].cells[el.cellIndex < 2 ? 0 : 2].textContent.trim();
            arr.push(text);
            document.querySelector(".active").classList.remove("active");
            ++num;
            if (num < len) tr[num].classList.add("active");
            else Object.keys(obj).forEach(function(key) {
                var ar = obj[key],
                    n = ar.length;
                ar = ar.reduce(function(a, b) {
                    return a += +!!~arr.indexOf(b)
                }, 0);
                var h = document.createElement("h3");
                h.textContent = key + " : " + 100 / n * ar + "%";
                document.body.appendChild(h)
            })
        }
    })
});
  </script>

</head>

<body>
  <h3>Тест по классификации труда (Е.А. Климов)</h3>

<h4>(методика Е.А.Климова, модификация А.А. Азбель)</h4>

<h4>Выбери один из двух вариантов деятельности</h4>

<table  cellpadding="5" class="">
  <tr class="active">
    <td>1а	</td><td>Выращивать и дрессировать служебных собак для поиска наркотиков	</td><td>1б </td><td>Разрабатывать новые модели электронной бытовой техники</td>
  </tr>
  <tr>
    <td>2а	</td><td>Спасать людей после аварий землетрясений	</td><td>2б	</td><td>Заверять документы, оформлять доверенности и договора</td>
  </tr>
  <tr>
    <td>3а	</td><td>Петь в музыкальной группе	</td><td>3б	</td><td>Интенсивно тренироваться, совершенствоваться и добиваться новых спортивных результатов</td>
  </tr>
  <tr>
    <td>4а	</td><td>Налаживать работу компьютеров, оборудования	</td><td>4б	</td><td>Рассказывать о товаре, убеждать людей приобретать его</td>
  </tr>
  <tr>
    <td>5а	</td><td>Переводить научные тексты	</td><td>5б	</td><td>Писать рассказы, сценарии, фельетоны</td>
  </tr>
  <tr>
    <td>6а	</td><td>Тренировать свой организм, чтобы он выдерживал воздействие больших физических нагрузок	</td><td>6б	</td><td>Разрабатывать мероприятия по охране редких растений</td>
  </tr>
  <tr>
    <td>7а	</td><td>Ремонтировать оргтехнику, компьютеры, телефоны	</td><td>7б	</td><td>Исправлять смысловые и стилистические ошибки в готовящихся к печати текстах</td>
  </tr>
  <tr>
    <td>8а	</td><td>Заниматься флористикой, оформлять помещения цветами	</td><td>8б	</td><td>Анализировать состояние растений и животных в загрязненных условиях среды</td>
  </tr>
  <tr>
    <td>9а	</td><td>Управлять автомобилем, автобусом, трейлером, локомотивом поезда	</td><td>9б	</td><td>Микшировать музыку или корректировать фотоснимки с помощью компьютера</td>
  </tr>
  <tr>
    <td>10а	</td><td>Ежедневно тренировать свои атлетические навыки в спортивном зале, в бассейне, на стадионе, корте и т.д.	</td><td>10б	</td><td>Отлаживать работу спортивного автомобиля и заменять механизмы в случае неисправности</td>
  </tr>
  <tr>
    <td>11а	</td><td>Давать людям консультации по туристическим маршрутам других городов, стран	</td><td>11б	</td><td>Оформлять витрины универмагов; заниматься оформлением концертов и шоу</td>
  </tr>
  <tr>
    <td>12а	</td><td>Разводить декоративных рыб и ухаживать за аквариумами в офисах	</td><td>12б	</td><td>Оказывать людям медицинскую помощь</td>
  </tr>
  <tr>
    <td>13а	</td><td>Упорядочивать документацию фирмы и подготавливать новую (договора, счета, ведомости, доверенности и т.д.)	</td><td>13б	</td><td>Вырабатывать навыки красивой походки и пластичных движений для профессионального выступления на подиуме</td>
  </tr>
  <tr>
    <td>14а	</td><td>Изучать генетику, выводить новые сорта растений	</td><td>14б	</td><td>Работать в фондах архивов, находить необходимые документы</td>
  </tr>
  <tr>
    <td>15а	</td><td>Сопровождать людей в сложных туристических походах в роли инструктора	</td><td>15б	</td><td>Придумывать и отрабатывать сложные акробатические трюки, спортивные номера</td>
  </tr>
  <tr>
    <td>16а	</td><td>Лечить кошек, собак, лошадей и пр.	</td><td>16б	</td><td>Осуществлять сборку компьютеров</td>
  </tr>
  <tr>
    <td>17а	</td><td>Искать нужных людей, проводить подбор персонала в различные фирмы	</td><td>17б	</td><td>Проводить финансовый анализ рынка ценных бумаг</td>
  </tr>
  <tr>
    <td>18а	</td><td>Играть на сцене, сниматься в кино, ставить трюки	</td><td>18б	</td><td>Тренировать и репетировать красивые и точные движения перед спортивным выступлением</td>
  </tr>
  <tr>
    <td>19а	</td><td>Налаживать работу медицинского лазера, ультразвуковой аппаратуры	</td><td>19б	</td><td>Преподавать различные предметы в школе, техникуме, институте и т.д.</td>
  </tr>
  <tr>
    <td>20а	</td><td>Рассчитывать экономный путь транспортировки товара до потребителя	</td><td>20б	</td><td>Оформлять иллюстрациями сайты, книги, журналы</td>
  </tr>
  <tr>
    <td>21а	</td><td>Осуществлять постоянную психологическую и физическую подготовку к соревнованиям, турнирам, выступлениям	</td><td>21б	</td><td>Участвовать в экспедициях, посвященных изучению природных явлений</td>
  </tr>
  <tr>
    <td>22а	</td><td>Строить дома по планам, делать разводку электричества соответственно с проектом	</td><td>22б	</td><td>Работать с финансовыми законами и кодексами</td>
  </tr>
  <tr>
    <td>23а	</td><td>Проектировать садово-парковые зоны, оформлять участки с помощью растений	</td><td>23б	</td><td>Анализировать молекулярный состав крови</td>
  </tr>
  <tr>
    <td>24а	</td><td>Проектировать новое производственное оборудование, дома	</td><td>24б	</td><td>Производить архитектурно-восстановительные работы исторических мест</td>
  </tr>
  <tr>
    <td>25а	</td><td>Оттачивать мастерство выполнения спортивного упражнения, превозмогая усталость и страх	</td><td>25б	</td><td>Разрабатывать новые модели спортивных тренажеров, велосипедов и другое спортивное оборудование</td>
  </tr>
  <tr>
    <td>26а	</td><td>Организовывать праздники, выступать в роли тамады	</td><td>26б	</td><td>Вести концертные программы, объявлять зрителям имена выступающих и названия номеров программы</td>
  </tr>
  <tr>
    <td>27а	</td><td>Изучать жизнь организмов с помощью электронного микроскопа	</td><td>27б	</td><td>Оказывать людям психологическую помощь, работать на телефоне доверия</td>
  </tr>
  <tr>
    <td>28а	</td><td>Обрабатывать, анализировать и обобщать социологические данные	</td><td>28б	</td><td>Профессионально работать над красотой своей фигуры и внешности</td>
  </tr>
  <tr>
    <td>29а	</td><td>Разрабатывать средства защиты растений от вредителей и вирусов	</td><td>29б	</td><td>Писать компьютерные программы</td>
  </tr>
  <tr>
    <td>30а	</td><td>Консультировать людей в фитнес- зале, в бассейне, на спортивной площадке	</td><td>30б	</td><td>Тренировать общую выносливость и совершенствовать отдельные спортивные или артистические навыки</td>
  </tr>
</table>

</body>
</html>

Manyasha 23.08.2016 10:39

рони,
Ух ты!!! Круто получилось!:)
Только скобочки у cells (54-я строка) квадратными не должны быть? У меня без этой правки не работает:-?

рони 23.08.2016 11:28

Manyasha,
ок, исправил.

ГалинаS 24.08.2016 17:04

Спасибо большое, что откликнулись на мою мольбу о помощи :)

ГалинаS 24.08.2016 17:05

Огромное спасибо за помощь в решении моей проблемы))

ГалинаS 24.08.2016 17:47

Рони, у меня не видит дальше))) что сделать, что показал?


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