如何用ASP做一个调查问卷
我公司准备做一个调查问卷.1、 您觉得本次活动?
好 一般 不好
如果觉得本次活动不好,原因是?
产品款式 产品质量 产品价格 赠品 其他
等等,请问如何把这些调查问卷写到数据库里面去,而且必须填写. 谢谢! 急用的! 帮你up 这个,你会asp么?如果会我就给你说说原理就好了
创建一个提交表单页面,也就是问卷的主页 postQuest.htm
大概就是这样
<form action="提交到某个asp页面的地址" name="questForm" method="post">
<p>1、 您觉得本次活动?
<input name="q1" type="radio" value="1" checked="checked"/>
好
<input type="radio" name="q1" value="2"/>
一般
<input type="radio" name="q1" value="3"/>
很好
<br/>
2.如果觉得本次活动不好,原因是?
<input name="q2" type="radio" value="1" checked="checked"/>
产品款式 产品价格 赠品
<input type="radio" name="q2" value="2"/>
产品价格
<input type="radio" name="q2" value="3"/>
赠品
<input type="radio" name="q2" value="4"/>
其他</p>
<p>
<input type="submit" name="Submit" value="提交" />
</p>
</form> 再创建一个asp页面程序用来处理表单传过来的信息
例如getRequest.asp
<%
'获得表单数据
dim q1,q2
q1=trim(request.Form("q1"))
q2=trim(request.Form("q2"))
response.Write("第一个问题答案变量为" & q1 & "<br/>")
response.Write("第二个问题答案变量为" & q2 & "<br/>")
....下面就不详细写了
无非是创建数据库连接,添加新的记录而已
%>
至于查看问卷调查的结果,你还需要再写一个asp程序来遍历数据库的记录,然后进行统计.
不是太难,数据库设计时1个表就够了,如果需要留下用户的信息,再给一个表。 最后提供给你一个数据库的连接,一般你这样的需求用asp+access就不错了.good luck
<%
dim conn
dim dbpath,userip
set conn=server.createobject("adodb.connection")
DBPath = Server.MapPath("/Data/#xdd.Mdb")'这里的数据库地址你自己写
conn.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & DBPath
set rs=server.createobject("adodb.recordset")
%>
'简单的防注入处理
<%
Dim Fy_Url,Fy_a,Fy_x,Fy_Cs(),Fy_Cl,Fy_Ts,Fy_Zx
'---定义部份 头------
Fy_Cl = 2 '处理方式:1=提示信息,2=转向页面,3=先提示再转向
Fy_Zx = "404.htm" '出错时转向的页面
'---定义部份 尾------
On Error Resume Next
Fy_Url=Request.ServerVariables("QUERY_STRING")
Fy_a=split(Fy_Url,"&")
redim Fy_Cs(ubound(Fy_a))
On Error Resume Next
for Fy_x=0 to ubound(Fy_a)
Fy_Cs(Fy_x) = left(Fy_a(Fy_x),instr(Fy_a(Fy_x),"=")-1)
Next
For Fy_x=0 to ubound(Fy_Cs)
If Fy_Cs(Fy_x)<>"" Then
If Instr(LCase(Request(Fy_Cs(Fy_x))),"'")<>0 or Instr(LCase(Request(Fy_Cs(Fy_x))),"and")<>0 or Instr(LCase(Request(Fy_Cs(Fy_x))),"select")<>0 or Instr(LCase(Request(Fy_Cs(Fy_x))),"update")<>0 or Instr(LCase(Request(Fy_Cs(Fy_x))),"chr")<>0 or Instr(LCase(Request(Fy_Cs(Fy_x))),"delete%20from")<>0 or Instr(LCase(Request(Fy_Cs(Fy_x))),";")<>0 or Instr(LCase(Request(Fy_Cs(Fy_x))),"insert")<>0 or Instr(LCase(Request(Fy_Cs(Fy_x))),"mid")<>0 Or Instr(LCase(Request(Fy_Cs(Fy_x))),"master.")<>0 Then
Select Case Fy_Cl
Case "1"
Response.Write "<Script Language=JavaScript>alert(' 出现错误!参数 "&Fy_Cs(Fy_x)&" 的值中包含非法字符串!\n\n 请不要在参数中出现:;,and,select,update,insert,delete,chr 等非法字符!\n\n你想干吗!不要做无聊的事情!谢谢!');window.close();</Script>"
Case "2"
Response.Write "<Script Language=JavaScript>location.href='"&Fy_Zx&"'</Script>"
Case "3"
Response.Write "<Script Language=JavaScript>alert(' 出现错误!参数 "&Fy_Cs(Fy_x)&"的值中包含非法字符串!\n\n 请不要在参数中出现:;,and,select,update,insert,delete,chr 等非法字符!\n\n你想干吗!不要做无聊的事情!谢谢!');location.href='"&Fy_Zx&"';</Script>"
End Select
Response.End
End If
End If
Next
%> 阿汐正解也
估计楼主需要补习一下ASP基础了
页:
[1]