多项选择题也实现了。我的思路是:
我增加了二个文本框,一个要考生自己在里面录入答案(就是考生答题),另一个用隐藏的文本框来读取正确的答案。到另一页面显示时,对两个文本框的内容进行比较,相等,就是答对了,不相等,就是错误了,但是现在又遇到了新的问题。
两个文本框的名字分别是:考生录入答案的文本框名是: name=duo"&q_num&"
,正确答案的文本框名是:name= duo_DA"&q_num&"
问题1:就是如何对两个文本框进行比较。比如:正确答案是大写:BCD,考生输入小写的bcd。答是答对了,但比较时不相等,如何大小写字母统一转换。这样才能进行比较?
问题2:比如正确答案是大写:BCD,但用户输入时,不按顺序写成了cdb或dbc或bdc等等。就是不按顺序录入。怎么转换成按顺序,可以与正确的答案进行比较。
请帮忙解决以上两个问题。
附部分代码。
页面1.asp
......
'前面省略
elseif t_type = 3 then
'多项选择题
response.Write(q_num&". "&rs("TRY_SUBJECT")&"<br>")
'题目
response.Write(" A."&rs("a")&"<br>")
'A 答案
response.Write(" B."&rs("b")&"<br>")
'B 答案
response.Write(" C."&rs("c")&"<br>")
'C 答案
response.Write(" D."&rs("d")&"<br>")
'D 答案
duo_DA(j) = Trim(rs("TRY_KEY")) '读取正确答案
response.Write(" 请输入第"&q_num&"题的答案:<input name=duo"&q_num&" type=text
>"&"<br><br>")
'考生录入的答案
response.Write(" <input name=duo_DA"&q_num&" type=hidden
value="&duo_DA(j)&">"&"<br><br>")
'将正确答案传值
end if
------------------------------------------------------------------------------------------------------------------------------------------------------
页面2.asp
......前面省略
response.Write "<br><font color = ff0000>★ 多项选择题中做错的有:</font><br><br>"
for d3 = 1 to 20
duo_TJ(d3) = request("duo"&d3)
'考生录入的答案 取值到duo_tj
duo_DA(d3) = request("duo_DA"&d3) '正确的答案 取值到duo_da
if duo_TJ(d3) = "" then duo_TJ(d3) = "g"
'判断是否,没有做题,就统赋一个值g ,只要不是ABCD就行
if duo_TJ(d3)=duo_DA(d3) then
'两个文本框进行比较
duo_FS = duo_FS + 2
'相等就+2分
else
response.Write "<font color = ff0000>"&d3&"</font>题错,正确答案是"&duo_DA(d3)&" | "
end if
next
response.Write "<br><font color = 0000ff>多项选择题得:"&duo_FS&"分</font><br><br>"