-- 作者:小鞋子
-- 发布时间:3/22/2004 10:16:00 PM
-- FLASH+XML专题[四] flash投票程序 [ASP XML版]
为了调查了解站点访问者对特定问题的立场,我们可以在站点中设置投票程序,站点访问者直接选择答案,程序自动对所有答案进行统计和显示. 下面是一个简单的flash版的投票程序,后台使用 xml+ asp+ mysql: 因为大多web工作者对asp比较熟悉,xml可以将复杂的问题简化,采用mysql的原因是access 我没有安装,程序不需要任何存储过程,所以无需动SQL Server ,Oracle 等重兵器. 点[URL=http://www.blueidea.com/articleimg/2003/10/1000/vote.rar]这里[/URL]下载源文件 (53k) 问题分析:本投票程序是选择题, 故我们用一个字段存储用户的答案即可. 建立数据库和表:表名称和数据库名称任意,字段定义如下: voteid 无符号整数 自动编号 result 短整数 存储用户选择 本程序范围在0-2 userip char (25) 用户ip地址实际长度21 message char(255) 附加消息 //这个程序未用 使用mysql-front创建,如下图所示:  设计flash用户界面: 从window/components/flash ui components 中 拖三个 RadioButton到舞台中, 设置标签,其他为默认值。(从属性面板和组件参数面板均可以设置)  这里将使用一个图表组件(HTML UI Components中的Subtype),你可以到MM扩充资源 www.macromedia.com/exchange/flash 下载. 参数设置如下:   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 "<?xml version='1.0' encoding='gb2312'?>" response.Write("<root bz='"&bzh&"'>") Response.write "<base><data value='相信' color='0xff00cc'/><data value='不相信' color='0x0000CC'/><data value='现在还不清楚' color='0x00cc00'/></base>" response.Write("<record value='共"&tcount&"票' color='0x0000CC'>") response.Write("<data value='"&t0/tcount&"'/>") response.Write("<data value='"&t1/tcount&"'/>") response.Write("<data value='"&t2/tcount&"'/></record>") %> <% Response.write "</root>" rec.close set rec=nothing conn.close set conn=nothing %> 将文件保存为votexml.asp,放置到web路径为"/"的目录中,即可. 备注,实际应用到web服务器的时候,请在flash中使用相对路径.flash movie和votexml.asp可以放置到任何目录中.
|