如何用法jQuery+PHP+MySQL来实现一个在线测试项目_.docx

上传人:scccc 文档编号:11331764 上传时间:2021-07-26 格式:DOCX 页数:7 大小:14.19KB
返回 下载 相关 举报
如何用法jQuery+PHP+MySQL来实现一个在线测试项目_.docx_第1页
第1页 / 共7页
如何用法jQuery+PHP+MySQL来实现一个在线测试项目_.docx_第2页
第2页 / 共7页
如何用法jQuery+PHP+MySQL来实现一个在线测试项目_.docx_第3页
第3页 / 共7页
如何用法jQuery+PHP+MySQL来实现一个在线测试项目_.docx_第4页
第4页 / 共7页
如何用法jQuery+PHP+MySQL来实现一个在线测试项目_.docx_第5页
第5页 / 共7页
亲,该文档总共7页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《如何用法jQuery+PHP+MySQL来实现一个在线测试项目_.docx》由会员分享,可在线阅读,更多相关《如何用法jQuery+PHP+MySQL来实现一个在线测试项目_.docx(7页珍藏版)》请在三一文库上搜索。

1、如何用法jQuery+PHP+MySQL来实现一个在线测试项目_ 如何用法jQuery+PHP+MySQL来实现一个在线测试项目 本文将结合实例给大家介绍如何用法jQuery+PHP+MySQL来实现在线测试题,包括动态读取题目,答题完毕后台评分,并返回答题结果。 在上一篇文章中,我们介绍了用法jQuery实现的测试题效果。那么本文将结合实例给大家介绍如何用法jQuery+PHP+MySQL来实现在线测试题,包括动态读取题目,答题完毕后台评分,并返回答题结果。这是一篇WEB综合应用文章,建议阅读本文的您应当具备HTML,jQuery以及PHP和MySQL等基本学问。 quiz.php 在这里为

2、了讲解便利,我将php和HTML混写在quiz.php文件中。首先和本站上篇文章:jQuery实现的测试答题功能一样,载入jQuery库和quizs.js文件,然后在适当的位置加上测试题html结构。 div id=quiz-container/div 我们要在页面加载的时候将题目信息读取出来,并且给jQuery调用显示。题目信息来自数据库,我们可以先在数据表quiz中加入题目及其答案选项信息。 我们通过构造SQL语句,用法PHP查询数据库,读取题目和答案选项信息,留意这个时候我们不需要读取正确答案。然后将题目信息以JSON格式赋给变量$json。 ?php include_once(conn

3、ect.php);/连接数据库 $sql = select * from quiz order by id asc; $query = mysql_query($sql); /查询数据 while($row=mysql_fetch_array($query) $answers = explode(#,$rowanswer); /将答案选项分开 $arr = array( question = $rowid.、.$rowquestion, /题目 answers = $answers /答案选项 ); $json = json_encode($arr); /转换json格式 ? 我们得到了一串j

4、son格式的数据,然后就像上一篇文章介绍的一样,调用jquizzy(),方法如下: $(function() $(#quiz-container).jquizzy( questions: ?php echo $json;?, /试题信息 sendResultsURL: data.php /结果处理地址 ); ); 这样,我们再来运行网页quiz.php,是不是生成了一个测试题,查看源代码,我们只能看到json数据,却不能看到试题对应的答案部分。 data.php 在调用测试题的时候,有个选项sendResultsURL,它是在用户打完题,点击“完成”按钮时,向后台data.php发送一个Aja

5、x交互恳求,data.php会依据用户的答题状况,比对正确答案,然后给出用户所得分数。 include_once(connect.php); /连接数据库 $data = $_REQUESTan; /猎取答题信息 $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; /答

6、对的题数 while($row=mysql_fetch_array($query) if($answers$i=$rowcorrect) /比对正确答案 $arrres = 1; /正确 $q_right += 1; /正确答题数+1 else $arrres = 0; /错误 $i+; $arrscore = round($q_right/$an_len)*100); /计算总得分 echo json_encode($arr); data.php中,首先连接数据库,接收处理参数an,an是前端用户答题的答案,然后查询数据表,将用户提交的答案与数据表中题目的正确答案进行对比,对比后做相应的处理

7、,并计算出用户答题所得分数,最终输出返回json格式数据给前台调用。 quizs.js 我们对js代码做了修改,主要针对前后台ajax交互部分,quizs.js中核心部分如下: if (config.sendResultsURL != null) var collate = ; var myanswers = ; /猎取用户所答题的答案 for (r = 0; r userAnswers.length; r+) collate.push(questionNumber: + parseInt(r + 1, 10) + , userAnswer: + userAnswersr + ); myans

8、wers = myanswers + userAnswersr+|; /Ajax交互 $.getJSON(config.sendResultsURL,an:myanswers,function(json) if(json=null) alert(通讯失败!); else var corects = jsonres; $.each(corects,function(index,array) resultSet += div class=result-row + (corectsindex = 1 ? div class=correct#+(index + 1)+span/span/div: di

9、v class=wrong#+(index + 1)+span/span/div)+/div; ); resultSet = h2 class=qTitle + judgeSkills(json.score) + br/ 您的分数: + json.score + /h2div class=jquizzy-clear/div + resultSet + div class=jquizzy-clear/div; superContainer.find(.result-keeper).html(resultSet).show(500); ); 用户答题后,将用户所答题的答案组成字符串如“1|2|4|

10、1|3|”的形式,然后通过$.getJSON将答案给参数an提交到后台,后台PHP处理比对正确答案后,将比对结果返回过来,返回结果如:res:1,0,1,1,0,score:60,res是答题比对结果,分别表示五道题的答题结果,1表示答题正常,0表示答题错误,score表示得分。然后将返回的结果处理,得出每道题的评判结果和总得分,生成对应的html结构。 MySQL 最终,附上mysql数据表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; 你可以往表中添加信息,也可以挺直导入源码包中的quiz.sql文件。 以上所述就是本文的全部内容了,盼望大家能够喜爱。 更多信息请查看IT技术专栏 .

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 社会民生


经营许可证编号:宁ICP备18001539号-1