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

ASP
[原创]asp下用实现模板加载的的几种方法总结
asp下利用fso实现文件夹或文件移动改名等操作函数
asp cint clng的范围与防止cint和clng的溢出解决方法大全
asp防范跨站点脚本攻击的的方法
独孤剑写的马克斯迅雷片库采集插件1.4 官方最新版提供下载了
根据日期得到生肖的ASP函数
不错的主要用于加密的vbs(asp)位移运算类
Script.VBS.Agent.ai juan.vbs专杀
循环取值Request.QueryString的用法
asp下实现字符串的补充fill()
无服务器做任意二级米子站
几种另类的ASP后门
asp事物功能简单小应用
ASP获取网页全部图片地址并保存为数组的正则
通过客户端验证上传图片文件大小的ASP源码
asp下计算分页的几种方法
谈动态多行多列,循环行和列,输出M行N列的ASP代码
asp在线执行sql语句的函数
asp正则html的图片,对图自动缩放大小
文件名 正则表达式提取方法

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


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-11-03   浏览: 114 ::
收藏到网摘: 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