当前位置:首页 > 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 异步提交答案:

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

php 选择题如何实现

分享给朋友:

相关文章

vue如何实现冒泡

vue如何实现冒泡

Vue 实现冒泡排序的步骤 在 Vue 中实现冒泡排序,可以通过数据绑定和计算属性来动态展示排序过程。以下是一个完整的实现示例。 示例代码 <template> <div&g…

vue自动登录如何实现

vue自动登录如何实现

实现自动登录的基本思路 自动登录通常通过结合本地存储(如localStorage或cookie)和token验证机制实现。用户首次登录成功后,服务器返回的认证token会被保存在客户端,下次打开应用时…

vue手写签名如何实现

vue手写签名如何实现

实现 Vue 手写签名的步骤 使用 canvas 实现基础签名功能 在 Vue 项目中创建一个组件,利用 HTML5 的 canvas 元素实现手写签名功能。通过监听鼠标或触摸事件来捕获用户的绘制路径…

h5响应式布局如何实现

h5响应式布局如何实现

使用媒体查询(Media Queries) 通过CSS媒体查询针对不同屏幕尺寸设置不同的样式规则。例如: @media screen and (max-width: 768px) { .c…

如何实现vue

如何实现vue

安装 Vue.js 使用 npm 或 yarn 安装 Vue.js。确保已安装 Node.js 环境。 npm install vue # 或 yarn add vue 创建 Vue 实例 在 H…

js双击事件如何实现

js双击事件如何实现

实现双击事件的方法 在JavaScript中,可以通过监听dblclick事件或手动检测两次点击的时间间隔来实现双击事件。以下是几种常见的方法: 使用原生dblclick事件 element.ad…