利用数组获取表单元素并循环插入数据库

来源:互联网 发布:令狐冲 知乎 编辑:程序博客网 时间:2024/05/18 02:12

在之前静态问卷的基础上深化了一下,这次尝试将问卷题目从数据库中读取,但在问卷的提交过程中还是出现了一些问题。

先附上问卷题目的读取代码:


<!--#include file="conn.asp"--><%set rs=server.CreateObject("ADODB.Recordset")rs.open"select *from que order by qID",conn,1,3counts=rs.recordcount%><form id="wj" method="post" action="tijiao.asp"><% for i=1 to counts%>    <p> </p>    <p> </p>        <p><%=i%>.<%=rs("nr")%></p>        <p> </p>        <%set rrs=conn.Execute("select * from choose where qID="&rs("qID"))%>        <%if rs("qtype")="单选" thenfor j=1 to rs("cnum")%>        <input type="radio" name="q<%=rs("qID")%>" value="<%=j%>"><%=j%>.<%=rrs("ms")%>         <%rrs.movenext  next%>        <%elseif rs("qtype")="下拉框" then%>        <select style="width:80px; text-align:center;" name="q<%=rs("qID")%>"><%for j=1 to rs("cnum")%>        <option value="<%=j%>"><%=rrs("ms")%></option>            <%rrs.movenextnext%></select>        <%elseif rs("qtype")="多选" then%><%for j=1 to rs("cnum")%>        <input type="checkbox" name="q<%=rs("qID")%>" value="<%=j%>"><%=j%>.<%=rrs("ms")%>                <%rrs.movenextnext%>        <%else%><textarea cols="85" rows="4" name="q<%=rs("qID")%>"></textarea>    <%end ifrs.movenextnext%>    <p> </p>    <p> </p>    <input class="submit_1" type="submit" value="提交">    <input class="submit_1" type="reset" value="重置">    <input type="button" value="返回" onclick="location='index.html';">    </form>


接下来便是具体实现将选择循环插入数据库的代码

<!--#include file="conn.asp"--><%set rs=server.CreateObject("ADODB.Recordset")rs.open"select *from que order by qID",conn,1,3counts=rs.recordcount  IP=request.ServerVariables("REMOTE_ADDR")  dim q()  redim q(counts)  for i=1 to counts  q(i)=request.form("q"&rs("qID"))  rs.movenext  next    sql="insert into result(IP,qtime) values('"&IP&"',#"&Date()&"#)"  conn.execute sql  set sr=conn.execute("select * from que order by qID asc")  set rrs=conn.execute("select top 1 ID from result order by ID desc")  for i=1 to counts  conn.execute "insert into detail(num,qID,choose) values("&cint(rrs("ID"))&","&sr("qID")&",'"&q(i)&"')"  sr.movenext  next    response.Write"<script>alert('提交成功!谢谢参与');location.href='clients.asp';</script>"%>

该代码巧妙地利用数组通过request.form("q"&rs("qID"))的方式获取表单元素,以实现将数据循环插入到数据库中去。在此处,i作为一个变量但同时也是一个字符常量,这恰恰是混淆我的地方。同时,我认为此代码中先插入记录再选出记录再插入记录的方式也值得去思考。


0 0
原创粉丝点击