diff --git a/html/quiz.js b/html/quiz.js
index f4ee2f0..803181e 100644
--- a/html/quiz.js
+++ b/html/quiz.js
@@ -1,35 +1,106 @@
-document.addEventListener("DOMContentLoaded", function(){
+// document.addEventListener("DOMContentLoaded", function(){
+// let questions = [];
+// let form = document.getElementById("quizform");
+// let result = document.getElementById("result");
+
+// fetch("question.csv")
+// .then(Response => Response.text())
+// .then(data =>
+// let lines = data.trim().split("\n");
+// let headers = lines[0].split(",");
+// for (let i = 1; i < lines.length; i++) {
+// let cols = lines[i].split(",");
+// questions.push({
+// question: cols[0],
+// options: [cols[1],cols[2],cols[3]],
+// answer:parseInt(cols[4], 10)
+// });
+// }
+// renderQuestions();
+// });
+
+// function renderQuestions(){
+// questions.forEach((q, index)=> {
+// let div = document.createElement("div");
+// div.className = "question";
+// let qText = document.createElement("p");
+// qText.textContent = (index +1) + "." + q.question;
+// div.appendChild(qText);
+
+// q.options.forEach((opt, i)=> {
+// let label = document.createElement("label");
+// let radio = document.createElement("input");
+// })
+// })
+// }
+
+
+ document.addEventListener("DOMContentLoaded", function () {
let questions = [];
let form = document.getElementById("quizform");
let result = document.getElementById("result");
fetch("question.csv")
- .then(Response => Response.text())
- .then(data =>
- let lines = data.trim().split("\n");
- let headers = lines[0].split(",");
- for (let i = 1; i < lines.length; i++) {
- let cols = lines[i].split(",");
- questions.push({
- question: cols[0],
- options: [cols[1],cols[2],cols[3]],
- answer:parseInt(cols[4], 10)
- });
- }
- renderQuestions();
- });
+ .then(response => response.text())
+ .then(data => {
+ let lines = data.trim().split("\n");
+ let headers = lines[0].split(",");
+ for (let i = 1; i < lines.length; i++) {
+ let cols = lines[i].split(",");
+ questions.push({
+ question: cols[0],
+ options: [cols[1], cols[2], cols[3]],
+ answer: parseInt(cols[4], 10)
+ });
+ }
+ renderQuestions();
+ });
- function renderQuestions(){
- questions.forEach((q, index)=> {
+ function renderQuestions() {
+ questions.forEach((q, index) => {
let div = document.createElement("div");
div.className = "question";
+
let qText = document.createElement("p");
- qText.textContent = (index +1) + "." + q.question;
+ qText.textContent = (index + 1) + ". " + q.question;
div.appendChild(qText);
- q.options.forEach((opt, i)=> {
+ q.options.forEach((opt, i) => {
let label = document.createElement("label");
let radio = document.createElement("input");
- })
- })
+ radio.type = "radio";
+ radio.name = "question" + index; // 各問題ごとにグループ化
+ radio.value = i;
+
+ label.appendChild(radio);
+ label.appendChild(document.createTextNode(opt));
+ div.appendChild(label);
+ div.appendChild(document.createElement("br"));
+ });
+
+ form.appendChild(div);
+ });
+
+ // 最後に送信ボタンを追加
+ let submitBtn = document.createElement("button");
+ submitBtn.type = "submit";
+ submitBtn.textContent = "回答する";
+ form.appendChild(submitBtn);
+
+ form.addEventListener("submit", function (e) {
+ e.preventDefault();
+ checkAnswers();
+ });
}
+
+ function checkAnswers() {
+ let score = 0;
+ questions.forEach((q, index) => {
+ let selected = document.querySelector(`input[name="question${index}"]:checked`);
+ if (selected && parseInt(selected.value, 10) === q.answer) {
+ score++;
+ }
+ });
+ result.textContent = "あなたの得点: " + score + "/" + questions.length;
+ }
+});
\ No newline at end of file