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

ASP
javascript css 三级目录(简单的)
asp下sql和access数据库随机取10条记录的代码newid()
新增加一个防垃圾评论的asp代码,鄙视垃圾
asp ADO GetString函数与用GetString来提高ASP的速度
windows2003下使用asp WScript.Shell的设置方法
asp UTF-8 乱码问题的解决方法小结
JavaScript面向对象的两种书写方法以及差别
响应对象 错误 ''ASP 0185 : 80020003'' 缺少默认属性
ASP生成伪参数程序设计技巧
asp中使用mysql数据库的注意实现
使用FSO修改文件夹的名称实现文件转移防盗链
asp下request.querystring("id")与request("id")区别
asp将全角的字符转变成半角字符,将半角转变成全角d的代码
asp创建表,复制表 字段类型附录
asp加密解密函数decrypt
asp获取当前网页地址的代码
asp下经常用到的代码
asp 的中文分词
修改正确的asp冒泡排序
rustysun同学ASP代码书写规范

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


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

      
  二、调查项目的创建和维护
  作 者 : 仙人掌工作室
  
     本节我们说明调查项目创建和维护功能的实现。
  
     创建与维护调查项目的起始页面是Startup.html,该页面负责设定PollMaker.asp和ItemMaker.asp等页面使用的帧结构(从上到下共分三个帧)。起始页面所引用的Blank.html只用于指定背景颜色,StartMsg.html提供启动时显示在最下面帧的提示信息。
  
     PollMaker.asp和ItemMaker.asp都包含运行于服务器的ASP脚本,同时也包含(和创建)浏览器脚本以支持客户端操作。运行于服务器的脚本由VBScript写成,而客户端脚本则是JavaScript,这使得它既可以运行于Netscape Navigator,也适合于IE。
  
     PollMaker.asp通过查找Poll数据库的MSysObjects系统表获得已经定义的调查项目名字。因此,ASP应用必须具有读取该表的权限。在Access97中的设定方法是:先选择菜单“工具/选项”设置系统对象可见,然后在“工具/安全/用户与组的权限”下设定。在本文所附代码中Poll.mdb已经设置了这个权限。如果要在不同的RDBMS上实现这个调查系统,这部分代码必须改写,使它适应目标数据库上的系统表结构。
  
     要将这些已定义的调查项目名字显示到下拉列表框,首先需要从S_表的表名中除去“S_”前缀,然后将这些字符串格式化为< SELECT>元素的< OPTION>字符串:
  
   
   < SELECT NAME="PollName">
   < OPTION VALUE="StartPoll" SELECTED>NEW POLL
   < %
    ' 获取当前已经定义的调查项目名字
    Set objConn = Server.CreateObject("ADODB.Connection")
    objConn.Open "poll"
    Set objRS = _
    objConn.Execute("SELECT Name FROM MSysObjects " & _
    "WHERE Type=1 AND Name LIKE 'S_%' ORDER BY Name")
    Do While Not objRS.EOF
    PollName = Mid(objRS("Name"), 3)
    Response.Write("< OPTION VALUE=""" & PollName & """>" & PollName)
    objRS.MoveNext
    Loop
   %>
   < /SELECT>
  
     ItemMaker将指定调查项目的所有定义信息下载到浏览器端的JavaScript数组中,从而实现问题的快速编辑和创建。所有的问题编辑操作都在浏览器内通过修改两个JavaScript数组完成,只有单击“保存” 按钮才可将修改结果写入数据库。
  
     ItemMaker.asp首先将Response.Buffer设置为True,因此在页面生成完成之前HTML输出将一直缓冲在服务器上,这使得产生错误或执行非编辑功能时ItemMaker.asp可以不下载那些JavaScript函数而退出。在Sub Main的开始处,程序通过检查表单变量OpType来决定是创建新的调查项目,还是删除调查项目或调查结果。这三个操作均在ItemMaker.asp内完成,即所有受密码保护的功能均在同一脚本内实现,这使得整个系统中密码只在一个地方存取。上述三个操作均需动态地生成与执行SQL语句。不论是脚本执行出现错误,还是指定的操作执行成功,都调用Response.Redirect语句重新加载PollMaker.asp,并把一个说明字符串传递给它:
  
   
   < %
   Dim PollName
   Dim Password
   Dim objConn
   Dim objRS
   
   PollName = Request("PollName")
   Password = UCase(Request("Password"))
   OpType = Request("OpType") ' 要求ItemMaker.asp执行的操作
   
   SName = "[S_" & PollName & "]"
   AName = "[A_" & PollName & "]"
   RName = "[R_" & PollName & "]"
   Call Main
   Sub Main
   If Password < > "WEBPOLL" Then ' 如密码错误返回PollMaker.asp并提示
    Response.Redirect "PollMaker.asp?Msg=密码错误,请再试一次。"
    Exit Sub '从ItemMaker.asp返回
   End If
   If OpType = "Edit" Then ' 编辑或创建调查调查项目
    If PollName = "StartPoll" Then
    If Not newPoll() Then '用户没有给出调查项目的名字
    Response.Redirect "PollMaker.asp?Msg=请输入调查