我用 Dreamweaver做了一个试题表单,要如何提交,与数据库的答案进行对比并给出得分?

时间:2021-09-03 00:17:33
我是菜鸟级,但急需应用,只好请求各位帮忙了!我要把数据库的选择题放入dw中,并在评分。
数据库是access中建立的db2.mdb,表是db3
sndtext(题目)、cha(选择一)、chb选择二)、chc选择三)、chd选择四)、answer(答案)
程序段如下,运行网页提示http 500内部服务器错误,麻烦哪位高手帮改改代码,哪里有问题,谢谢!
<%@LANGUAGE="VBSCRIPT" CODEPAGE="936"%>
<!--#include file="Connections/conn1.asp" -->
<%
Dim Recordset1
Dim Recordset1_cmd
Dim Recordset1_numRows

Set Recordset1_cmd = Server.CreateObject ("ADODB.Command")
Recordset1_cmd.ActiveConnection = MM_conn_STRING
Recordset1.Source = "SELECT * FROM db3"
Recordset1.CursorType = 0
Recordset1.CursorLocation = 2
Recordset1.LockType = 1
Recordset1.Open()

Set Recordset1 = Recordset1_cmd.Execute
Recordset1_numRows = 0
%>
<%
Dim Repeat1__numRows
Dim Repeat1__index

Repeat1__numRows = 10
Repeat1__index = 0
Recordset1_numRows = Recordset1_numRows + Repeat1__numRows
%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>无标题文档</title>
</head>

<body>
<form id="form1" name="form1" method="post" action="">
    <% 
While ((Repeat1__numRows <> 0) AND (NOT Recordset1.EOF)) 
%>
  <table width="619" border="1">
        <tr>
          <td width="925">(<%=(Recordset1.Fields.Item("ID").Value)%>)、<%=(Recordset1.Fields.Item("sendtext").Value)%> </td>
        </tr>
        <tr>
          <td><input type="radio" name="<%=(Repeat1__index)%>" value="<%=(Recordset1.Fields.Item("chA").Value)%>" />
          A、<%=(Recordset1.Fields.Item("chA").Value)%> </td>
        </tr>
        <tr>
          <td><input type="radio" name="<%=(Repeat1__index)%>" value="<%=(Recordset1.Fields.Item("chB").Value)%>" />
          B、<%=(Recordset1.Fields.Item("chB").Value)%></td>
        </tr>
        <tr>
          <td><input type="radio" name="<%=(Repeat1__index)%>" value="<%=(Recordset1.Fields.Item("chC").Value)%>" />
          C、<%=(Recordset1.Fields.Item("chC").Value)%></td>
        </tr>
        <tr>
          <td><input type="radio" name="<%=(Repeat1__index)%>" value="<%=(Recordset1.Fields.Item("chD").Value)%>" />
          D 、 <%=(Recordset1.Fields.Item("chD").Value)%></td>
        </tr>
    </table>
      <% 
  Repeat1__index=Repeat1__index+1
  Repeat1__numRows=Repeat1__numRows-1
  Recordset1.MoveNext()
Wend
%>
<p>
 <input type="submit" name="form1" value="提交" />
</p> 
 <%
   if request.form("Repeat1__index")=Recordset1.Fields.Item("answer").Value then
      '答对的情况
   else
      '答错的情况
   end if  
   Repeat1__index++
next
response.write"您的成绩是:" &Repeat1__index
%>
</form>
</body>
</html>
<%
Recordset1.Close()
Set Recordset1 = Nothing
%>

6 个解决方案

#1


对不起,目前为止dw貌似无法实现这么复杂的操作
你自己研究代码吧
dw帮不了你一生一世的

#2


提交后,你得从数据库把正确答案取出来,然后跟你提交的数据进行对比

 每一项 用变量存下来,正确一个是1,错就0
    1,0,1,1 ,1 最后你就可以这得出 10111 80分..存入数据库
具体看你怎么设计 了

#3


我的answer就是数据库里正确答案

#4


截取字符串 做 对比,

正确就记录,错误不记。

#5


引用 4 楼  的回复:
截取字符串 做 对比,

正确就记录,错误不记。

嗯,我也觉得这样简单些

#6


能帮改改代码吗

#1


对不起,目前为止dw貌似无法实现这么复杂的操作
你自己研究代码吧
dw帮不了你一生一世的

#2


提交后,你得从数据库把正确答案取出来,然后跟你提交的数据进行对比

 每一项 用变量存下来,正确一个是1,错就0
    1,0,1,1 ,1 最后你就可以这得出 10111 80分..存入数据库
具体看你怎么设计 了

#3


我的answer就是数据库里正确答案

#4


截取字符串 做 对比,

正确就记录,错误不记。

#5


引用 4 楼  的回复:
截取字符串 做 对比,

正确就记录,错误不记。

嗯,我也觉得这样简单些

#6


能帮改改代码吗