Flash+ASP联合打造投票程序

发布时间:2013-09-19 11:33:46来源:阅读(2811)

    为了调查了解站点访问者对特定问题的立场,我们可以在站点中设置投票程序,站点访问者直接选择答案,程序自动对所有答案进行统计和显示.

      下面是一个简单的flash版的投票程序,后台使用xml+ ASP+ mysql:因为大多web工作
    者对ASP比较熟悉,xml可以将复杂的问题简化,采用mysql的原因是access我没有安装,程序不需要任何存储过程,所以无需动SQL Server ,Oracle等重兵器.

      问题分析:本投票程序是选择题,故我们用一个字段存储用户的答案即可.

      建立数据库和表:表名称和数据库名称任意,字段定义如下:

      voteid无符号整数自动编号

      result短整数存储用户选择本程序范围在0-2

      userip char (25)用户ip地址实际长度21

      message char(255)附加消息//这个程序未用

      使用mysql-front创建,如下图所示:


    图1


        设计flash用户界面:从window/components/flash ui components中拖三个RadioButton到舞台中,

      设置标签,其他为默认值。(从属性面板和组件参数面板均可以设置)


    图2


        这里将使用一个图表组件(HTML UI Components中的Subtype),你可以到MM扩充资源www.macromedia.com/exchange/flash下载.
    参数设置如下:


    图3




    图4


        flash端的程序非常简单只有三行:

      //在时间轴的第一帧,加入下面的代码

      //标签名称为"开始投票吧!"的按钮,事件句柄为sendvote,在点击后执行下面的自定义函数

      function sendvote () {

      _root.mytb.readData("http://localhost/votexml.ASP?selectresult="+radioGroup.getInstance());

      }

      服务器端程序的编写,上面你可能看到有一个votexml.ASP的文件,下面我们就来建立它.

      代码如下:
    <%@LANGUAGE="VBSCRIPT" CODEPAGE="936"%>
    <%
    set conn=server.CreateObject("adodb.connection")
    conn.open "dsn=mysql"
    set rec=server.CreateObject("adodb.recordset")
    %>
    <% if request("selectresult")<>"" then
    userip= Request.ServerVariables("REMOTE_ADDR")
    selectresult=request.QueryString("selectresult")
    rec.open "select count(*) as count from votetable where votedate>'"&now()-0.125 & "' and userip='"&userip&"'",conn
    if rec("count")>0 then
    bzh="重复投票无效"
    rec.close
    'response.Write("请不要重复投票")
    else
    rec.close
    bzh="投票有效"
    conn.execute "insert into votetable(userip,result) values('"&userip&"',"& selectresult&")"
    end if
    else
    bzh="查看投票"
    end if
    rec.open "SELECT result,count(*) as count FROM votetable group by result ORDER BY result asc",conn
    t0=cint(rec("count"))
    rec.movenext
    t1=cint(rec("count"))
    rec.movenext
    t2=cint(rec("count"))
    tcount=t0+t1+t2
    Response.contenttype="text/xml"
    %>
    <% Response.write ""
    response.Write("")
    Response.write ""
    response.Write("")
    response.Write("")
    response.Write("")
    response.Write("
    ")
    %>
    <%
    Response.write "
    "
    rec.close
    set rec=nothing
    conn.close
    set conn=nothing
    %>将文件保存为votexml.ASP,放置到web路径为"/"的目录中,即可. 备注:实际应用到web服务器的时候,请在flash中使用相对路径.flash movie和votexml.ASP可以放置到任何目录中.

关键字