diff --git a/assets/css/custom.css b/assets/css/custom.css index e4a1389..bdd2bd9 100644 --- a/assets/css/custom.css +++ b/assets/css/custom.css @@ -53,4 +53,8 @@ a:hover { .table { border: 1px solid var(--light-gray); +} + +.hidden { + display: none; } \ No newline at end of file diff --git a/assets/js/main.js b/assets/js/main.js index 03850b0..6f3aa7e 100644 --- a/assets/js/main.js +++ b/assets/js/main.js @@ -8,21 +8,11 @@ document.addEventListener('DOMContentLoaded', function () { surveyForm.addEventListener('submit', function (e) { e.preventDefault(); - const name = document.getElementById('name').value.trim(); - const email = document.getElementById('email').value.trim(); - const message = document.getElementById('message').value.trim(); - - if (name === '' || email === '' || message === '') { - alert('Please fill out all fields.'); - return; - } - - if (!validateEmail(email)) { - alert('Please enter a valid email address.'); - return; - } - const formData = new FormData(this); + const emailInput = document.getElementById('email'); + if (emailInput) { + formData.append('email', emailInput.value); + } fetch('submit_feedback.php', { method: 'POST', @@ -31,10 +21,14 @@ document.addEventListener('DOMContentLoaded', function () { .then(response => response.json()) .then(data => { if (data.success) { - formContainer.classList.add('hidden'); - successMessage.classList.remove('hidden'); + if (formContainer) { + formContainer.classList.add('hidden'); + } + if (successMessage) { + successMessage.classList.remove('hidden'); + } } else { - alert('An error occurred: ' + data.error); + alert('An error occurred: ' + (data.error || 'Unknown error')); } }) .catch(error => { @@ -48,3 +42,4 @@ document.addEventListener('DOMContentLoaded', function () { return re.test(String(email).toLowerCase()); } }); + diff --git a/assets/pasted-20251007-214249-09f8d1f8.png b/assets/pasted-20251007-214249-09f8d1f8.png new file mode 100644 index 0000000..c588bd2 Binary files /dev/null and b/assets/pasted-20251007-214249-09f8d1f8.png differ diff --git a/db/migrations/010_alter_feedback_submissions_message_nullable.sql b/db/migrations/010_alter_feedback_submissions_message_nullable.sql new file mode 100644 index 0000000..c09fad3 --- /dev/null +++ b/db/migrations/010_alter_feedback_submissions_message_nullable.sql @@ -0,0 +1 @@ +ALTER TABLE feedback_submissions MODIFY COLUMN message TEXT NULL; \ No newline at end of file diff --git a/submit_feedback.php b/submit_feedback.php index 9f3146c..dcda342 100644 --- a/submit_feedback.php +++ b/submit_feedback.php @@ -10,10 +10,8 @@ if ($_SERVER['REQUEST_METHOD'] === 'POST') { $survey_id = trim($_POST['survey_id'] ?? ''); $answers = $_POST['answers'] ?? []; - if (empty($name) || empty($email) || empty($survey_id) || empty($answers)) { + if (empty($name) || empty($survey_id) || empty($answers)) { $response['error'] = 'Please fill out all fields.'; - } elseif (!filter_var($email, FILTER_VALIDATE_EMAIL)) { - $response['error'] = 'Invalid email format.'; } else { $pdo = db(); try { @@ -27,6 +25,9 @@ if ($_SERVER['REQUEST_METHOD'] === 'POST') { // Insert into survey_answers $answer_stmt = $pdo->prepare("INSERT INTO survey_answers (submission_id, question_id, answer_text) VALUES (?, ?, ?)"); foreach ($answers as $question_id => $answer_text) { + if (is_array($answer_text)) { + $answer_text = implode(', ', $answer_text); + } if (!empty($answer_text)) { $answer_stmt->execute([$submission_id, $question_id, $answer_text]); } @@ -58,3 +59,4 @@ if ($_SERVER['REQUEST_METHOD'] === 'POST') { } echo json_encode($response); + diff --git a/survey.php b/survey.php index 392a8c3..bd748ae 100644 --- a/survey.php +++ b/survey.php @@ -54,12 +54,12 @@ require_once 'templates/header.php';