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

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

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


<!--#include file="conn.asp"-->
<%
set rs=server.CreateObject("ADODB.Recordset")
rs.open"select *from que order by qID",conn,1,3
counts=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")="单选" then
		for 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.movenext
		next
		%></select>
        <%elseif rs("qtype")="多选" then%>
		<%for j=1 to rs("cnum")%>
        	<input type="checkbox" name="q<%=rs("qID")%>" value="<%=j%>"><%=j%>.<%=rrs("ms")%>
                <%rrs.movenext
		next
		%>
        <%else%>
		<textarea cols="85" rows="4" name="q<%=rs("qID")%>"></textarea>
    	<%end if
	rs.movenext
	next
	%>
    <p> </p>
    <p> </p>
    <input class="submit_1" type="submit" value="提交">
    <input class="submit_1" type="reset" value="重置">
    <input type="button" value="返回" οnclick="location='index.html';">
    </form>


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

<!--#include file="conn.asp"-->
<%
set rs=server.CreateObject("ADODB.Recordset")
rs.open"select *from que order by qID",conn,1,3
counts=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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值