Current directory: /home/klas4s23/domains/585455.klas4s23.mid-ica.nl/public_html/Gastenboek/uploads
document.addEventListener("DOMContentLoaded", function () {
const nextButton = document.getElementById("next-button");
const submitButton = document.getElementById("submit-button");
const questions = document.querySelectorAll(".quiz-question");
const answerInputs = document.querySelectorAll(".user-answer");
let endQuizContainer = document.getElementById("end-quiz-container");
let currentQuestionIndex = 0;
let correctAnswers = 0;
let incorrectAnswers = 0;
// Zorg ervoor dat alleen de eerste vraag zichtbaar is
questions.forEach((question, index) => {
if (index !== 0) question.style.display = "none";
});
// Toggle de "Volgende Vraag" knop
function toggleNextButton() {
const userAnswer = answerInputs[currentQuestionIndex].value.trim();
nextButton.disabled = userAnswer === ""; // Schakel de knop uit als er geen antwoord is
}
// AJAX-fetch om antwoord te controleren
function checkAnswer(questionIndex, userAnswer) {
const listId = new URLSearchParams(window.location.search).get("list_id"); // Haal list_id uit de URL
let languageMode = 0; // Default taalmodus
// Haal de taalmodus op
fetch("languagesetting.php")
.then(response => response.json())
.then(response => {
languageMode = response; // Stel de taalmodus in
console.log("Session language mode:", languageMode);
// Verstuur het antwoord naar de server
return fetch("answerCheck.php", {
method: "POST",
headers: {
"Content-Type": "application/json"
},
body: JSON.stringify({
questionIndex: questionIndex,
answer: userAnswer,
listId: listId,
languageMode: languageMode
})
});
})
.then(response => response.json())
.then(data => {
const feedbackContainer = questions[questionIndex].querySelector(".feedback");
const feedbackElement = document.createElement("div");
feedbackElement.classList.add("feedback-message");
feedbackElement.textContent = data.message;
feedbackElement.style.color = data.correct ? "green" : "red";
feedbackContainer.innerHTML = '';
feedbackContainer.appendChild(feedbackElement);
// Schakel de "Volgende Vraag" knop in als er feedback is
nextButton.disabled = false;
})
.catch(error => {
console.error("Fout in AJAX-verzoek:", error);
alert("Er is een probleem opgetreden bij het controleren van het antwoord. Probeer het opnieuw.");
});
}
// Voeg een event listener toe aan de invoervelden
answerInputs.forEach((input, index) => {
input.addEventListener("input", function () {
const userAnswer = input.value.trim();
if (userAnswer !== "") {
checkAnswer(index, userAnswer); // Controleer het antwoord via AJAX
}
toggleNextButton(); // Zorg ervoor dat de knop beschikbaar is als er een antwoord is
});
});
toggleNextButton();
// Event listener voor de "Volgende Vraag" knop
nextButton.addEventListener("click", function () {
// Verberg de huidige vraag
if (questions[currentQuestionIndex]) {
questions[currentQuestionIndex].style.display = "none";
}
// Ga naar de volgende vraag
currentQuestionIndex++;
if (currentQuestionIndex < questions.length) {
questions[currentQuestionIndex].style.display = "block"; // Toon de volgende vraag
toggleNextButton();
} else {
nextButton.style.display = "none"; // Verberg de "Volgende Vraag" knop
submitButton.style.display = "block"; // Toon de "Verzend Quiz" knop
}
});
// Event listener voor de "Verzend Quiz" knop
submitButton.addEventListener("click", function (event) {
event.preventDefault(); // Voorkom de standaard actie van de knop
alert("Je hebt de quiz succesvol ingediend!");
// Verberg vragen en knoppen
document.querySelector(".FormStyle").style.display = "none";
document.getElementById("questions-container").style.display = "none";
nextButton.style.display = "none";
submitButton.style.display = "none";
// Maak een container voor de vraagresultaten
let questionResults = document.createElement("div");
questionResults.id = "question-results";
// Controleer de antwoorden en genereer het overzicht
answerInputs.forEach(function (input, index) {
let userAnswer = input.value.trim().toLowerCase();
let correctAnswer = correctAnswersArray[index].trim().toLowerCase();
let questionText = questionsArray[index];
// Maak een div voor het resultaat van deze vraag
let resultItem = document.createElement("div");
resultItem.classList.add("result-item");
// Voeg de vraagtekst toe
let questionTextElement = document.createElement("p");
questionTextElement.innerText = `Vraag: ${questionText}`;
resultItem.appendChild(questionTextElement);
// Controleer of het antwoord goed of fout is
if (userAnswer === correctAnswer) {
correctAnswers++;
let correctElement = document.createElement("p");
correctElement.innerText = "Jouw antwoord: Goed!";
correctElement.style.color = "green"; // Groen voor goed antwoord
resultItem.appendChild(correctElement);
} else {
incorrectAnswers++;
let incorrectElement = document.createElement("p");
incorrectElement.innerText = `Jouw antwoord: Fout (Correct: ${correctAnswersArray[index]})`;
incorrectElement.style.color = "red"; // Rood voor fout antwoord
resultItem.appendChild(incorrectElement);
}
// Voeg het resultaat van deze vraag toe aan de container
questionResults.appendChild(resultItem);
});
// Toon de samenvatting en voeg de resultaten toe aan de container
endQuizContainer.style.display = "block";
document.getElementById("correct-answers").innerText = "Aantal goede antwoorden: " + correctAnswers;
document.getElementById("incorrect-answers").innerText = "Aantal foute antwoorden: " + incorrectAnswers;
endQuizContainer.appendChild(questionResults);
});
// Event listener voor de "Terug naar Dashboard" knop
document.getElementById("back-button").addEventListener("click", function () {
window.location.href = "dashboard.php"; // Verwijs de gebruiker terug naar het dashboard
});
});