问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

如何使用jquery php mysql来实现在线测试题,包括动态读取题目,答题完毕后台评分

发布网友 发布时间:2022-04-28 04:47

我来回答

2个回答

懂视网 时间:2022-04-28 09:08

【相关学习推荐:jQuery教程,php编程(视频),mysql教程】

这个实例主要给大家介绍如何使用jQuery+PHP+MySQL来实现在线测试题,包括动态读取题目,答题完毕后台评分,并返回答题结果。

读取答题列表:

$sql = "select * from quiz order by id asc"; 
$query = mysql_query($sql); 
while ($row = mysql_fetch_array($query)) { 
 $answers = explode('###', $row['answer']); 
 $arr[] = array( 
 'question' => $row['id'] . '、' . $row['question'], 
 'answers' => $answers 
 ); 
} 
$json = json_encode($arr);

生成答题列表:

<p id='quiz-container'></p>

通过遍历出来的列表,生成答题功能:

$(function(){ 
 $('#quiz-container').jquizzy({ 
 questions: <?php echo $json;?>, //试题信息 
 sendResultsURL: 'data.php' //结果处理地址 
 }); 
});

当用户打完题,点击“完成”按钮时,会向ajax.php发送一个Ajax交互请求,ajax.php会根据用户的答题情况,比对正确答案,然后给出用户所得分。

$data = $_REQUEST['an']; 

$answers = explode('|',$data); 
$an_len = count($answers)-1; //题目数 

$sql = "select correct from quiz order by id asc"; 

$query = mysql_query($sql); 
$i = 0; 
$score = 0; //初始得分 
$q_right = 0; //答对的题数 
while($row=mysql_fetch_array($query)){ 
 if($answers[$i]==$row['correct']){ 
 $arr['res'][] = 1; 
 $q_right += 1; 
 }else{ 
 $arr['res'][] = 0; 
 } 
 $i++; 
} 
$arr['score'] = round(($q_right/$an_len)*100); //总得分 
echo json_encode($arr);

quiz表结构:

CREATE TABLE IF NOT EXISTS `quiz` ( 
 `id` int(11) NOT NULL AUTO_INCREMENT, 
 `question` varchar(100) NOT NULL, 
 `answer` varchar(500) NOT NULL, 
 `correct` tinyint(2) NOT NULL, 
 PRIMARY KEY (`id`) 
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=6 ; 
 
-- 
-- 转存表中的数据 `quiz` 
-- 
 
INSERT INTO `quiz` (`id`, `question`, `answer`, `correct`) VALUES 
(1, '罗马帝国曾一度辉煌,令人神往,故有“条条大陆通罗马”一说。那么,今天你是怎样理解这一谚语的准确含义的?', 'A.入乡随俗 ###B.四通八达 ###C.殊途同归 ###D.流连忘返', 3), 
(2, '找出不同类的一项:', 'A.斑马 ###B.军马 ###C.赛马 ###D.骏马 ###E.驸马', 5), 
(3, ' 蜡烛在空气中燃烧,蜡烛质量逐渐变小。这说明', 'A.物质可以自生自灭###B.发生的不是化学变化###C.不遵守质量守恒定律###D.生成物为气体,散发到空气中了', 4), 
(4, '以下哪位歌手没有获得过《我是歌手》总冠军?', 'A.羽泉###B.韩磊###C.邓紫棋###D.韩红', 3), 
(5, '下列哪个标签不是HTML5中的新标签?', 'A.<article>###B.<canvas>###C.<section>###D.<sub>', 4);

想了解更多相关学习,敬请关注php培训栏目!

热心网友 时间:2022-04-28 06:16

<?php
include_once("connect.php");//连接数据库

$sql = "select * from quiz order by id asc";
$query = mysql_query($sql); //查询数据
while($row=mysql_fetch_array($query)){
$answers = explode('###',$row['answer']); //将答案选项分开
$arr[] = array(
'question' => $row['id'].'、'.$row['question'], //题目
'answers' => $answers //答案选项
);
}
$json = json_encode($arr); //转换json格式
?>
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
光猫的注册灯一直闪没有网是怎么回事 ...PSP3000播放不起MP4格式的视频 我是6.60系统,PPA也放不起。还有就... AVC无法播放 PSP的电影,我放在相应的文件夹里,播放器也有.怎么还不行? psp ppa 无法播放 S1铁路啥意思 农历八月十五出生男孩名字 T-46轻型坦克参数资料(取自坦克世界) 美丽加芬有卸妆液吗 为什么股票涨跌很快 双十一是先打折还是先满减 双十一是十一号整天都打折还是十二点那会儿打折? 网页设计中的,网页布局有几种方式?哪种方式最快? 为什么喜欢运用F型浏览模式来设计网站界面 如何提升网页设计的视觉层次感 php strcmp比较二个相等字符串时,返回不是0,不相等。 PHP里要查找某字符串是否包含在另一字符串里怎样实现? php 怎么判断字符串重复 php中判定输入的密码是否与字符串相等,可是无论密码输入什么,都会跳转页面,具体代码如下所示: PHP怎么判断字符串中包含重复相同的数字 php 判断数字,$a=&#39;1&#39;; $b=&#39;01&#39;;,怎么判断它们不等呢? php如何对比字符串内容? PHP判断字符串是否相等,用strcmp()、strcasecmp()有啥好处? 如何判断两个字符串中所有的字符相同,无视 php 中如何比较一个字符串中各个元素是否相等? php 如何比较两个中文字符串是否相等 php判断字符串是否相等 win10 build 怎么升级 win10 build什么意思 电脑一直莫名其妙蓝屏,不知道怎么解决 php+mysql做答题系统怎么做?就像QQ餐馆中的那种答题一样.请帮帮忙 PHP的在线考试系统,做每一题都可以返回前一题修改答案,如何实现? PHP+mysql做一个留言板 用php,mysql制作留言板 php+MySQL实现简单留言、修改、删除功能,遇到问题! php+mysql ,评论回复功能怎么实现? PHP+mysql写一个留言板 PHP APA MYSQL制作一个简单的留言板 php与mysql写留言板的原理 PHP+MYSQL留言板多管理员回复功能求助 求一个用php做的留言板项目,数据库要用mysql的 php+mysql评论功能怎么实现 如何制作PHP+MySQL的留言板? 完整的php&mysql的留言板源代码,可以运行的 新手会用PHP +MYSQL 做简单 的留言板功能的作品 、简单的天气预报的小偷程序、PHP+MYSQL分页原理 , python中有 “按给定的长度分割字符串” 的函数或方法吗 Python 如何将长度不同的字符串尽量均匀地分配到N个文件中?每一行的字符串作为整体,不能打散。 在python中如何将一个字符串分成几部分存入链表 Python中 如何将一个字符串分成一个个字符 python 字符串分割split()函数中中英文逗号分割