document.addEventListener("DOMContentLoaded", function () { const output = document.getElementById("info"); const mainContent = document.getElementById("content"); document.getElementById("startForm").addEventListener("submit", async function (formE) { formE.preventDefault(); formData = new FormData(formE.target); formData.append("testStart", "true") const response = await fetch("test.php", { method: "POST", body: formData, credentials: "include", headers: { 'X-Requested-With': 'XMLHttpRequest' } }); const result = await response.json(); output.innerHTML = result.msg; output.style.display = "block"; if (result.questions) setTimeout(function () { function beforeunloadFunc(e) { e.preventDefault(); } window.addEventListener('beforeunload', beforeunloadFunc); contentHTML = "
"; i = 0; testLength = result.questions.length; result.questions.forEach(question => { contentHTML += `

Pytanie ${++i}/${testLength} w bazie nr ${question.QID}

${question.content}

A. ${question.answerA}
B. ${question.answerB}
C. ${question.answerC}
D. ${question.answerD}
`; }); contentHTML += `

`; if (logged) contentHTML += `Zapisać wynik?
`; if (logged && !own) contentHTML += ``; contentHTML += `

Wróc do strony głównej

`; mainContent.innerHTML = contentHTML; document.getElementById("save").addEventListener("change", function (event) { rank = document.getElementById("rank"); if (event.target.checked) { rank.style.visibility = "visible"; } else { rank.style.visibility = "hidden"; } }); document.getElementById("test").addEventListener("submit", async function (formE) { formE.preventDefault(); window.removeEventListener('beforeunload', beforeunloadFunc); formData = new FormData(formE.target); formData.append("testEnd", "true"); const response = await fetch("test.php", { method: "POST", body: formData, credentials: "include", headers: { 'X-Requested-With': 'XMLHttpRequest' } }); const result = await response.json(); if (result.status == "OK") { window.scrollTo({ top: 0, behavior: 'smooth' }); Object.entries(result.answers).forEach(function ([key, arr]) { let correctLetter = ["A", "B", "C", "D"].includes(arr.answeredChar); if (!arr.correct && correctLetter) { document.getElementById(`q${key}`).innerHTML = `Nieprawidłowa odpowiedź, odpowiedziałeś ${arr.answeredChar}, prawidłowa odpowiedź to ${arr.correctChar}`; document.getElementById(`q${key}`).style.color = "red"; document.getElementById(`${arr.answeredChar}${key}`).style.color = "red"; document.getElementById(`${arr.correctChar}${key}`).style.color = "green"; } else if (!correctLetter) { document.getElementById(`q${key}`).innerHTML = `Nie odpowiedziałeś na pytanie, prawidłowa odpowiedź to ${arr.correctChar}`; document.getElementById(`q${key}`).style.color = "red"; document.getElementById(`${arr.correctChar}${key}`).style.color = "green"; } else { document.getElementById(`q${key}`).innerHTML = `Odpowiedziałeś prawidłowo, prawidłowa odpowiedż to ${arr.correctChar}`; document.getElementById(`q${key}`).style.color = "green"; document.getElementById(`${arr.answeredChar}${key}`).style.color = "green"; } }); const output = document.getElementById("info"); resultProcent = result.correctAnswers/result.testLength*100 output.innerHTML = `Prawidłowe odpowiedzi: ${result.correctAnswers}/${result.testLength} - ${resultProcent}%`; if (resultProcent >= 50) output.style.color = "green"; output.style.display = "block"; document.getElementById("end").style.display = "none"; } else alert("Wystąpił błąd, spróbuj ponownie"); }); }, 300); }); });