当前位置:首页 > PHP

php 选择题如何实现

2026-01-28 23:38:24PHP

实现 PHP 选择题功能

数据库设计
创建数据表存储题目、选项和答案。例如:

  • questions 表:id, question_text
  • options 表: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 异步提交答案:

php 选择题如何实现

$.post("check_answer.php", {answer: selectedOption}, function(response) {
    $("#result").html(response.is_correct ? "正确" : "错误");
});

分享给朋友:

相关文章

vue如何实现排序

vue如何实现排序

实现数组排序 在Vue中可以通过计算属性或方法对数组进行排序。使用JavaScript的sort()方法结合Vue的响应式特性实现动态排序。 data() { return { item…

h5页面如何实现

h5页面如何实现

实现H5页面的方法 H5页面是基于HTML5技术的网页,通常用于移动端和响应式设计。以下是实现H5页面的关键步骤和技术要点。 基础结构 使用HTML5的DOCTYPE声明作为页面的起始。HTML5简…

vue如何实现404

vue如何实现404

实现 Vue 404 页面的方法 在 Vue 中实现 404 页面通常需要结合路由配置和动态路由匹配。以下是几种常见方法: 使用通配符路由匹配 在 Vue Router 配置中,可以通过 * 通配符…

vue如何实现图

vue如何实现图

Vue 实现图表的方法 Vue 中实现图表可以通过多种方式,常见的有使用第三方库或自定义实现。以下是几种常见的方法: 使用 ECharts ECharts 是一个功能强大的图表库,支持多种图表类型。…

vue如何实现退出

vue如何实现退出

退出登录的实现方法 在Vue中实现退出登录功能通常涉及清除用户凭证、重置应用状态并跳转到登录页。以下是具体实现方式: 清除本地存储的Token 使用localStorage或sessionStora…

vue如何实现修改

vue如何实现修改

修改 Vue 组件或数据 在 Vue 中修改数据或组件状态通常涉及响应式数据的更新、组件方法的调用或状态管理工具的使用。以下是几种常见场景的实现方式: 修改响应式数据 Vue 的响应式系统会自动追踪…