当前位置: 首页 > 图文教程 > 网络编程 > ASP > 用ASP技术开发WEB调查(投票)系统 (3)

ASP
提高SQL的执行效率的ASP的五种做法
asp的offset的一个go to page
asp中command的在单条记录时,有些字段显示为空的问题
asp,php一句话木马整理方便查找木马
asp 合并记录集并删除的sql语句
asp下循环一行多少个
asp循环行数输出函数
asp access重新开始编号
ASP生成数字相加求和的BMP图片验证码
静态页面利用JS读取cookies记住用户信息
比较详细的Asp伪静态化方法及Asp静态化探讨
asp Response.flush 实时显示进度
Asp高级故障解决以及相关代码
asp智能脏话过滤系统v1.0
ASP文件中的安全问题
Access数据库中“所有记录中均未找到搜索关键字”的解决方法
asp两组字符串数据比较合并相同数据
asp MYSQL出现问号乱码的解决方法
asp文章中随机插入网站版权文字的实现代码
ASP利用XMLHTTP实现表单提交以及cookies的发送的代码

用ASP技术开发WEB调查(投票)系统 (3)


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-11-03   浏览: 105 ::
收藏到网摘: n/a

      
  三、调查表单的生成与结果分析
  作 者 : 仙人掌工作室
  
     PollWriter.asp先检查表单变量,包括调查项目名字PollName以及(可选的)字符串LinkText和LinkURL,LinkText和LinkURL描述了用户提交其投票结果之后显示的URL。接下来脚本创建并执行从指定调查项目的S_表和A_表提取记录集的SQL命令,然后遍历这个记录集格式化单选按钮、复选框以及其它提示文本,最后输出该调查项目的HTML表单。表单中问题的名字为“CHOICE”加问题序号。当这个表单被提交的时,它的ACTION将装载PollMaker.asp(这里的函数saveResponses()从CHOICE表单元素提取投票结果,然后更新数据库,代码略)。表单中的其它隐藏变量用于将PollName、OpType、LinkText、LinkURL传递给PollMaker.asp:
  
  
   < %
   ' 从S_表和A_表读取调查项目定义
   Set objConn = Server.CreateObject("ADODB.Connection")
   objConn.Open "poll"
   SQLCommand = "Select " & SName & ".ID, " & _
    "IType, NoOpinion, Stem, ALabel, Answer FROM " & SName & "LEFT JOIN " & _
    AName & " ON " & SName & ".ID = " & AName & ".ID ORDER BY " & _
    SName & ".ID, ALabel"
   Set objRS = objConn.Execute(SQLCommand)
   ' 向调查表单输出各个问题
   Do While Not objRS.EOF
    Response.Write("< TR>< TD>" & objRS("ID") & ".< TD BGCOLOR=""#ffff00"">" & _
    objRS("Stem"))
    Response.Write("< TR>< TD>< TD>")
    ckNoOpinion = IIf(objRS("NoOpinion") = "Y", "", "Checked")
    noMove = False
    ' 除"允许复选",其它各类问题均需检查是否允许不回答问题
    ansName = """CHOICE" & objRS("ID") & """"
    Select Case objRS("IType")
    Case "1" ' 是/否
    If ckNoOpinion = "" Then
    Response.Write(" < INPUT TYPE=radio NAME=" & ansName & _
    " VALUE="" "" Checked>暂不回答 ")
    End If
    Response.Write("< INPUT TYPE=radio NAME=" & ansName & _
    " VALUE=""A"" " & ckNoOpinion & ">是")
    Response.Write("< INPUT TYPE=radio NAME=" & ansName & _
    " VALUE=""B"">否")
    Case "2" ' 赞同程度
    ...略...
    Case "3" ' 语义区分
    ...略...
    Case "4" ' 多项选择
    ...略...
    Case "5" ' 允许复选
    ...略...
    End Select
    If NoMove Then
    NoMove = False
    ElseIf Not objRS.EOF Then
    objRS.MoveNext
    End If
   Loop
   %>
   
  
     PollResult.asp使用与PollWrite.asp同样的SQL命令从A_表(答案)和S_表(问题)提取记录集,接着从对应的R_表读取用户回答结果,用一个二维数组Counts统计投票结果。缺省时结果分析中不包含“没有回答”,如果要包含,则需给出表单变量ShowNoOp并指定其值为True,请参见图4中显示投票结果的URL。
  
  
   < %
   'Globals
   Dim PollName
   Dim Counts() ' 用户回答的统计数组
   Dim nResponses
   Dim N ' 用户回答数量,可能不包含"没有回答"选项
   Dim objConn
   Dim objRS
   
   nResponses = 0
   
   Call Main
   
   Sub Main
    Dim likert
    Dim i
    Likert = Array("强烈反对","反对", "不确定","同意","完全赞成")
    PollName = Request("PollName")
    ShowNoOp = IIf(UCase(R