如何在网上实现一个在线测试项目

如何在网上实现一个在线测试项目
在文章的最后,我们介绍了使用jQuery实现试题的影响。本文将给你一个例子来说明如何使用jQuery + PHP + MySQL实现在线测试题,包括动态的阅读问题,回答背景分级,并返回答案的结果。这是一个网络的综合应用,和建议您的HTML,jQuery的基本知识,PHP和MySQL的阅读这篇文章。

quiz.php
为了方便,我写的PHP和HTML在quiz.php文件。首先,我们将加载jQuery库和quizs.js文件以及考试答案的功能实现通过jQuery,并在适当的位置添加试题的HTML结构。
当页面加载并显示到jQuery调用时,我们必须读取标题信息。主题信息来自数据库,我们首先可以在数据表测试中添加标题和答案选项信息。

通过构造SQL语句,我们使用PHP查询数据库,读取问题和回答选项信息,并注意到此时我们不需要读取正确的答案。然后,主题信息被分配给JSON格式的变量JSON。

< PHP
include_once(连接。PHP); / /数据库连接

从测试命令中选择*;
查询= mysql_query美元($ SQL); / /数据查询
而($行= mysql_fetch_array($查询)){
答案(#美元=爆炸# # ',回答' } { $行); / /答案选项分别
{ } =数组(数组元
问题= > $行{ 'id' }。','行' } { 'question。$ / /主题
应答=$/应答选项
);
}
JSON = json_encode美元($ ARR); / / JSON格式的转换
>
我们得到一个字符串在JSON格式的数据,然后,像前一篇文章中,我们称jquizzy(),它是如下:

$(函数(){())
$(#测试容器)。Jquizzy({
问题:项目信息
sendresultsurl:数据。php / /地址
});
});
所以,如果我们的网页quiz.php再次,我们生成一个测试问题和检查源代码。我们只能看到JSON数据,但我们看不到试题的答案部分。
data.php
当调用测试题,有sendresultsurl选项,它是在用户完成,单击完成按钮,回到data.php发送一个Ajax交互请求,data.php会根据用户的情况,比较正确的答案,然后给用户评分。

include_once(连接。PHP); / /数据库连接

数据_request美元美元=AN{ }; / /得到的答案信息
答案=爆炸(|美元,美元的数据); / /数据分析
an_len美元=计数($答案- 1); / /物品数量

$从id命令中选择正确;
查询= mysql_query美元($ SQL); / /查询表
$ I = 0;
$ = 0;初始分数
q_right美元= 0; / /正确答案的数目
而($行= mysql_fetch_array($查询)){
如果($答案{ $我} = = $行{谈看法}){ / /正确的答案
美元的} { } { 'res ARR = 1; / /正确
q_right美元= 1; / / + 1正确的号码
其他{ }
美元的} { } { 'res ARR = 0; / /错误
}
美元+;
}
{ } =美元'score ARR的圆(×100(q_right美元/美元an_len)); / /计算总得分
回声json_encode($ ARR);
Data.php,第一次连接到数据库,接收和处理参数,一个是前端用户的答案,然后查询数据表,比较由用户的答案和数据表的话题提交正确答案,经相应治疗对比,计算出用户的答案得分,最终输出返回的JSON格式的数据前台电话。

quizs.js
我们已经修改了js代码,主要用于正面和背面的Ajax交互部分,对quizs.js核心部分如下:

如果(config.sendresultsurl!= NULL){
var;
无功myanswers =;
用户获取应答答案
为(R = 0;r<useranswers.length;R + +){
Collate.push({questionnumber + parseInt(R + 1,+ 10)
myanswers = myanswers + useranswers {红} + |;
}

ajax交互
美元。getJSON(config.sendresultsurl,{一}:myanswers,功能(JSON){)
如果(JSON = NULL){
警报(通信失败!);
其他{ }
无功corects = JSON { 'res};
美元。每个(corects,函数(指数、阵列){
ResultSet + = +(corects {指数} = 1 +(#指数+ 1)+:# +(指数+ 1)++);
});
结果=+ judgeskills(JSON。评分)+你的得分:+ + + +json.score ResultSet ''';
SuperContainer.find('。结果门将),Html(结果集)显示(500);
}
});
}
当用户的回答,用户的回答字符串组成如1 2 4 1 | | | | 3 |,然后将答案提交到后台的一美元的参数。getJSON,后背景对正确答案PHP,结果返回,返回的结果,如:{水库:1,0,1,1,0 } { 60 },得分,RES是答案的结果是五个问题的测试结果比,1说答案是正常的,0的人说,回答错误,得分。然后返回的结果进行处理,并将评价结果与每个问题总成绩获得,以及相应的HTML结构的生成。

MySQL
最后,附上MySQL数据表测验的结构。

如果不存在,创建表
` ID ` int(11)不为空auto_increment,
`问题` varchar(100)不为空,
`回答` varchar(500)不为空,
`正确` tinyint(2)非空,
主键(id)
= MyISAM引擎默认的字符集utf8);
你可以将信息添加到表中,你可以直接在源码包中导入quiz.sql文件。

以上是本文的全部内容,希望大家能喜欢。

tag:项目在线在网上测试电脑软件

相关内容