51CTO技术论坛_中国领先的IT技术社区's Archiver

hqsunhoo 发表于 2008-9-2 17:10

如何用ASP做一个调查问卷

我公司准备做一个调查问卷.
1、        您觉得本次活动?
好  一般 不好
如果觉得本次活动不好,原因是?
产品款式  产品质量  产品价格   赠品  其他            
等等,请问如何把这些调查问卷写到数据库里面去,而且必须填写. 谢谢! 急用的!

特爱蚂蚁 发表于 2008-9-2 19:01

帮你up

阿汐 发表于 2008-9-2 21:59

这个,你会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>

阿汐 发表于 2008-9-2 22:08

再创建一个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个表就够了,如果需要留下用户的信息,再给一个表。

阿汐 发表于 2008-9-2 22:14

最后提供给你一个数据库的连接,一般你这样的需求用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
%>

ribut9225 发表于 2008-9-15 08:27

阿汐正解也

估计楼主需要补习一下ASP基础了

页: [1]

Powered by Discuz! Archiver 6.1.0  © 2001-2007 Comsenz Inc.