Added auto-loading of previous responses
This commit is contained in:
parent
8e91c1432b
commit
2d697b512d
|
|
@ -74,20 +74,37 @@ document.addEventListener("DOMContentLoaded", function () {
|
||||||
|
|
||||||
// Prepopulate the form if returning user
|
// Prepopulate the form if returning user
|
||||||
function prepopulateForm() {
|
function prepopulateForm() {
|
||||||
const savedData = JSON.parse(localStorage.getItem("assessmentData"));
|
fetch("../load-responses.php")
|
||||||
if (savedData) {
|
.then(response => response.json())
|
||||||
Object.keys(savedData).forEach(key => {
|
.then(data => {
|
||||||
const field = form.elements[key];
|
if (data.error) {
|
||||||
if (field) {
|
console.warn("Error loading responses:", data.error);
|
||||||
if (field.type === "checkbox") {
|
return;
|
||||||
field.checked = savedData[key];
|
}
|
||||||
} else {
|
|
||||||
field.value = savedData[key];
|
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
|
// Save form data to localStorage on change
|
||||||
form.addEventListener("input", function () {
|
form.addEventListener("input", function () {
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,52 @@
|
||||||
|
<?php
|
||||||
|
session_start();
|
||||||
|
require_once "db.php";
|
||||||
|
|
||||||
|
header("Content-Type: application/json");
|
||||||
|
|
||||||
|
// Get user token from session or URL
|
||||||
|
$userToken = $_SESSION['user_token'] ?? $_GET['token'] ?? null;
|
||||||
|
|
||||||
|
if (!$userToken) {
|
||||||
|
http_response_code(403);
|
||||||
|
echo json_encode(["error" => "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;
|
||||||
|
?>
|
||||||
Loading…
Reference in New Issue