prepare('SELECT cs.*, s.title, s.description FROM client_surveys cs JOIN surveys s ON cs.survey_id = s.id WHERE cs.id = ? AND cs.client_id = ?'); $stmt->execute([$client_survey_id, $client_id]); $client_survey = $stmt->fetch(); if (!$client_survey) { header('Location: surveys.php'); exit; } // Fetch survey questions $questions_stmt = db()->prepare('SELECT * FROM survey_questions WHERE survey_id = ? ORDER BY id'); $questions_stmt->execute([$client_survey['survey_id']]); $questions = $questions_stmt->fetchAll(); // Handle submission if ($_SERVER['REQUEST_METHOD'] === 'POST' && $client_survey['status'] === 'pending') { foreach ($questions as $question) { $response_value = $_POST['responses'][$question['id']] ?? ''; if (is_array($response_value)) { $response_value = implode(', ', $response_value); } $stmt = db()->prepare('INSERT INTO survey_responses (client_survey_id, question_id, response) VALUES (?, ?, ?)'); $stmt->execute([$client_survey_id, $question['id'], $response_value]); } // Mark as completed $stmt = db()->prepare('UPDATE client_surveys SET status = \'completed\', completed_at = NOW() WHERE id = ?'); $stmt->execute([$client_survey_id]); header('Location: surveys.php'); exit; } // If already completed, fetch responses $responses = []; if ($client_survey['status'] === 'completed') { $responses_stmt = db()->prepare('SELECT question_id, response FROM survey_responses WHERE client_survey_id = ?'); $responses_stmt->execute([$client_survey_id]); $responses_data = $responses_stmt->fetchAll(); foreach ($responses_data as $response) { $responses[$response['question_id']] = $response['response']; } } ?>

You have already completed this survey.
$question): ?>
'; break; case 'textarea': echo ''; break; case 'select': case 'radio': case 'checkbox': $options_stmt = db()->prepare('SELECT * FROM survey_question_options WHERE question_id = ?'); $options_stmt->execute([$question['id']]); $options = $options_stmt->fetchAll(); if ($question['type'] === 'select') { echo ''; } else { $response_array = explode(', ', $response_value); foreach ($options as $option) { $checked = in_array($option['option_text'], $response_array) ? 'checked' : ''; echo '
'; echo ''; echo ''; echo '
'; } } break; } ?>
Back to Surveys