diff --git a/assets/js/main.js b/assets/js/main.js index 2520152..49a7540 100644 --- a/assets/js/main.js +++ b/assets/js/main.js @@ -74,20 +74,37 @@ document.addEventListener("DOMContentLoaded", function () { // Prepopulate the form if returning user function prepopulateForm() { - const savedData = JSON.parse(localStorage.getItem("assessmentData")); - if (savedData) { - Object.keys(savedData).forEach(key => { - const field = form.elements[key]; - if (field) { - if (field.type === "checkbox") { - field.checked = savedData[key]; - } else { - field.value = savedData[key]; - } - } - }); - } - } + fetch("../load-responses.php") + .then(response => response.json()) + .then(data => { + if (data.error) { + console.warn("Error loading responses:", data.error); + return; + } + + Object.keys(data).forEach(key => { + let field = document.querySelector(`[name="${key}"]`); + if (field) { + if (field.type === "checkbox") { + let values = JSON.parse(data[key] || "[]"); + values.forEach(value => { + let checkbox = document.querySelector(`[name="${key}"][value="${value}"]`); + if (checkbox) checkbox.checked = true; + }); + } else { + field.value = data[key]; + } + } + }); + + console.log("Form preloaded successfully."); + }) + .catch(error => console.error("Failed to load form responses:", error)); + } + + // Run prepopulation after DOM is loaded + document.addEventListener("DOMContentLoaded", prepopulateForm); + // Save form data to localStorage on change form.addEventListener("input", function () { diff --git a/load-responses.php b/load-responses.php new file mode 100644 index 0000000..2e4257c --- /dev/null +++ b/load-responses.php @@ -0,0 +1,52 @@ + "Unauthorized access."]); + exit; +} + +// Connect to the database +$conn = new mysqli(DB_HOST, DB_USER, DB_PASS, DB_NAME); +if ($conn->connect_error) { + http_response_code(500); + echo json_encode(["error" => "Database connection failed."]); + exit; +} + +// Fetch user ID using token +$stmt = $conn->prepare("SELECT id FROM users WHERE auth_token = ?"); +$stmt->bind_param("s", $userToken); +$stmt->execute(); +$result = $stmt->get_result(); +$user = $result->fetch_assoc(); +if (!$user) { + http_response_code(403); + echo json_encode(["error" => "Invalid authentication token."]); + exit; +} +$userId = $user['id']; + +// Fetch saved responses +$stmt = $conn->prepare("SELECT * FROM questionnaire_responses WHERE user_id = ?"); +$stmt->bind_param("i", $userId); +$stmt->execute(); +$result = $stmt->get_result(); +$response = $result->fetch_assoc(); + +if ($response) { + echo json_encode($response); +} else { + echo json_encode(["message" => "No previous responses found."]); +} + +$conn->close(); +exit; +?>