php 选择题如何实现
实现 PHP 选择题功能
数据库设计
创建数据表存储题目、选项和答案。例如:
questions表:id,question_textoptions表:id,question_id,option_text,is_correct
前端表单
使用 HTML 表单展示题目和选项,单选按钮实现选择:
<form method="post" action="submit.php">
<p><?php echo $question['question_text']; ?></p>
<?php foreach ($options as $option): ?>
<input type="radio" name="answer" value="<?php echo $option['id']; ?>">
<?php echo $option['option_text']; ?><br>
<?php endforeach; ?>
<input type="submit" value="提交">
</form>
后端处理
在 submit.php 中验证答案并反馈结果:
$selected_option_id = $_POST['answer'];
$correct_option_id = // 从数据库查询正确答案ID;
if ($selected_option_id == $correct_option_id) {
echo "回答正确!";
} else {
echo "回答错误,正确答案是:" . $correct_option_text;
}
动态生成选择题
随机出题逻辑
从数据库随机抽取题目,避免重复:
$random_question = $pdo->query("SELECT * FROM questions ORDER BY RAND() LIMIT 1")->fetch();
$options = $pdo->query("SELECT * FROM options WHERE question_id = {$random_question['id']}")->fetchAll();
选项乱序
使用 shuffle() 打乱选项顺序:
shuffle($options);
高级功能实现
多选题支持
修改表单为复选框,后端处理数组形式答案:
<input type="checkbox" name="answers[]" value="<?php echo $option['id']; ?>">
$selected_ids = $_POST['answers'] ?? [];
$correct_ids = // 查询所有正确选项ID;
$is_correct = (array_diff($correct_ids, $selected_ids) === [] && array_diff($selected_ids, $correct_ids) === []);
用户进度跟踪
使用 Session 记录已答题目:
session_start();
$_SESSION['answered'][] = $question_id;
即时反馈 AJAX
通过 jQuery 异步提交答案:
$.post("check_answer.php", {answer: selectedOption}, function(response) {
$("#result").html(response.is_correct ? "正确" : "错误");
});






