Current directory: /home/klas4s23/domains/585455.klas4s23.mid-ica.nl/public_html/Gastenboek/uploads
let quizId = new URLSearchParams(window.location.search).get("id");
let debounceTimer; // Timer om AJAX-calls te beperken
$(document).ready(function () {
$("#quiz-container").on("input", ".answer-input", function () {
clearTimeout(debounceTimer); // Annuleer de vorige timer
const inputField = $(this);
const questionId = inputField.data("question-id"); // Haal het vraag-ID op
const userAnswer = inputField.val().trim(); // Haal antwoord op
const resultSpan = $("#result-" + questionId); // Feedbackelement ophalen
// Wis feedback als het invoerveld leeg is
if (userAnswer === "") {
resultSpan.text("").css("color", "");
return;
}
// Stel een debounce-timer in om AJAX-verzoeken te beperken
debounceTimer = setTimeout(() => {
$.ajax({
url: "checkAnswer.php", // Endpoint voor antwoordcontrole
method: "POST",
data: {
question_id: questionId,
answer: userAnswer,
},
success: function (response) {
// Log de serverrespons voor debugging
console.log("Server response:", response);
// Controleer of de respons geldig JSON is
let data;
try {
data = typeof response === "string" ? JSON.parse(response) : response;
} catch (error) {
console.error("JSON parse error:", error);
resultSpan.text("Fout in verwerking.").css("color", "orange");
return;
}
// Verwerk de respons
if (data.status === "success") {
resultSpan
.text(data.is_correct ? "Correct!" : "Fout, probeer opnieuw.")
.css("color", data.is_correct ? "green" : "red");
if (data.is_correct) {
// Toon de volgende vraag na een korte vertraging
setTimeout(() => {
showNextQuestion(questionId);
}, 1000); // 1 seconde vertraging
}
} else {
// Server retourneert een errorstatus
console.warn("Server error:", data.message);
resultSpan.text("Er ging iets mis.").css("color", "orange");
}
},
error: function (jqXHR, textStatus, errorThrown) {
// Afhandeling van AJAX-fouten
console.error("AJAX error:", textStatus, errorThrown);
resultSpan.text("Fout bij serververzoek.").css("color", "orange");
},
});
}, 300); // 300ms debounce
});
});
function showNextQuestion(currentQuestionId) {
const currentQuestion = $(`[data-question-id="${currentQuestionId}"]`).closest(".question-container");
const nextQuestion = currentQuestion.next(".question-container");
if (nextQuestion.length > 0) {
// Verberg de huidige vraag en toon de volgende vraag
currentQuestion.hide();
nextQuestion.show();
} else {
// Als er geen volgende vraag is, toon een voltooiingsbericht
// $("#quiz-container").html("<p>Je hebt de quiz voltooid! Goed gedaan!</p>");
}
}