注册 登录
编程论坛 ASP技术论坛

复选框选择提交,如何与acc数据库某字段存的答案对比

scnjwq 发布于 2017-10-30 21:12, 6188 次点击
本人正编一个答题页,多项选择题,库中存有正常答案字段内容如2,4
用户提交复选后提交 ,得出正确与错误的判断,全选对才输出正确.这段码怎么写
13 回复
#2
wlrjgzs2017-10-30 23:13
如此笼统的问题描述,恐怕没人能帮你。
#3
klyz5052017-10-31 08:27
<input name="abc" value="1" type="checkbox">答案1
<input name="abc" value="2" type="checkbox">答案2
<input name="abc" value="3" type="checkbox">答案3
<input name="abc" value="4" type="checkbox">答案4
...
类似的,在页面上排好顺序,其值按从小到大。这样post数据到答案检测页时,就会按从小到大,比如:1234,或134或24之类的。
在答案检测页,接收post过来的数据,比如:
<%
dim abc
abc = request.form("abc")
abc = replace(abc," ","")
%>
abc得到的格式将是:值1, 值2, 值3
类似这样,值之间有空格
所以要过滤掉
然后跟数据库的值进行比对吧,等于就正确了(要注意,数据库中的值也不可以含空格)
#4
scnjwq2017-10-31 11:02
sub hd1()
    'response.Write("<font color=red>现在在hd1()函数</font>")
    if session("checkpage")="" or session("aid")="" then
        call out()
    end if
   
    dim ok1,ok2

    if request("R1")=session("aok") then    '答案正确      这是单项选择的判断


你的意思多项就可以改成

sub hd1()
    'response.Write("<font color=red>现在在hd1()函数</font>")
    if session("checkpage")="" or session("aid")="" then
        call out()
    end if
   
    dim ok1,ok2,R1

R1 = request.form("R1")
R1 = replace(R1," ","")

    if request("R1")=session("aok") then    '答案正确
#5
scnjwq2017-10-31 11:14
if replace(R1," ","")=session("aok") then     这样判断出来了。


还有个问题答错后有个可以查看答案,单项写<%=session("akey"&session("aok"))%>就可以正常显示,,多项的要如何  写呢?
#6
klyz5052017-10-31 11:55
dim arr,i
arr = split(session("aok"),",")
for i = 0 i < ubound(arr)
  response.write(session("akey"&arr(i)) & "<br>")
next

看原理吧,好久没写asp了,不知道有没写错
#7
scnjwq2017-10-31 15:11
for i = 0 i < ubound(arr)这行报错
#8
scnjwq2017-10-31 17:08
数据库里答案是1,2,4的数组,切割循环的问题吧
#9
scnjwq2017-10-31 17:13
把for    句删除



<%=session("akey"&arr(i)) & "<br>"%>这样只能显示多选的第一个正确答案,且只显这一个。
#10
klyz5052017-10-31 18:04
那是语法错误。。。你应当理解逻辑...

dim arr,i
arr = split(session("aok"),",")
for i = 0 to ubound(arr)
  response.write(session("akey"&arr(i)) & "<br>")
next


[此贴子已经被作者于2017-10-31 18:10编辑过]

#11
scnjwq2017-11-01 08:53
这一行是不报错了,,下面的的

end sub     报缺少语句。是上面缺少什么?
#12
scnjwq2017-11-01 09:19
end sub 前加了 next 不报错了,但还是只输出第一个正确答案
#13
klyz5052017-11-02 21:40
加我Q:3159401357
#14
黎明0072018-01-27 17:05
新手问题
这个帖子不是光靠帖吗?
1