sp?action=selected&answer=7+objAnswer.value+位id=7 +objAnswer.name,fraSaveAnswer!);
else
window.open(test_saveanswer.asp?action=selectcancel&answer=’+objAnswer.value+&id =’+objAnswer.name,fraSaveAnswer!);
else
if(objAnswer.type==text') window.open(test—saveanswer.asp?type=1&answer=’+objAnswer.value+&id=’
42
万方数据
第26卷
王波徐强:基于ASP的在线考试系统即时保存答案
第3期
+objAnswer.nsJne。fraSaveAnswer’);
else
。
window.open(test—saveanswer.asp?answei=’4-objAnswer.value+役id=’+ohjAn-
swer.name,fraSaveAnswer’;
objAnswer.focus();
}
.
在test_saveanswer.asp中,将会把得到的objAnswer.name(试题id)和objAnswer.value(考生答题信 息)存人相应的数据库表中。对于多选题将会分为选中和取消选中,通过action进行区分,而对于填空题 和问答题的信息的保存,则通过type进行区分。在将考生答题信息写入数据库时,对于单选题,多选题和 判断题这三种题型,将会保存数字信息:判断题设置为l表示正确和0表示错误;单选题A,B。c,D四个 选项分别对应1 i2,4,8,如考生选择为c,则保存答题信息4;多选题最多允许6个选项,答案为各个选项 对应的数字和,A,B,C,D,E,F选项分别对应l,2,4,8,16。32,如:选择AB,则保存为3,选择BCF保存为 38,ABCDEF保存为63。对于填空题和问答题则处理过程较为简单,直接将考生输入信息原样写人数据 库即可。而对于前述三种题型采用数字方式处理,一方面是为了统一编码,另一方面也是为了方便运算。 以多选题为例:如考生先选择了AB,此时保存信息为3,后又想改为BC,修改后答案为6,这时考生所作 操作为先去掉A前的勾,再勾选c。而与这两步操作相对应,服务器端会执行两个运算,分别是3按位与 非1(A)操作,得到2(这时只勾选了B),再做2按位或4(勾选c)操作,即可得到答案6,test_saveanswer. asp相应代码如下:
dim rsSaveAnswer,strSqlSaveAnswer,intAnswer,strAction,intID,inttype,strAnswer inttype=0 if
//区分是数字答案还是文本答案
ram(request.querystring(”type”))<>””then
inttype=CLng(trim(request.querystring(”type”)))
end if if inttype=l
then
strAnswer=trim(request.querystring(”answer”))
else
intAnswer=CLng(trim(request.querystring(”answer”)))
end if
strAction=request.querystring(”action”)
intID=request.quer
|
|
基于ASP的在线考试系统.txt |