對于FLASH來生成餅形我們已經(jīng)不是很陌生,我們就用它來顯示投票結(jié)果,一般我調(diào)查結(jié)果我們都是用圖片或者顏色塊來表示各項的結(jié)果了.
這里就不討論FLASH如何實現(xiàn)餅形的結(jié)果了,我們要作的就是把調(diào)查結(jié)果用FLASH+ASP按上面的形式實現(xiàn)出來.
首先用ASP把調(diào)查結(jié)果寫成XML文件.
Response.charset="gb2312"
Response.ContentType="text/xml"
在ASP文件的頭部使用上面的語句可以將結(jié)果顯示成XML文件格式.
下面我們定義一下XML文件的格式:
<pieData QUESTION="你覺得站點如何?">
<pie color="FF0000">
<value>14</value>
<text>顏色不好</text>
</pie>
<pie color="00FF00">
<value>37</value>
<text>沒有內(nèi)容</text>
</pie>
<pie color="0000FF">
<value>19</value>
<text>更新太慢</text>
</pie>
<pie color="FFFF00">
<value>7</value>
<text>沒有交互性</text>
</pie>
<pie color="FF00FF">
<value>14</value>
<text>都不喜歡</text>
</pie>
</pieData>
其中:QUESTION=調(diào)查的標(biāo)題
color=顏色
value=投票數(shù)
text=投票選項
下面是我生面XML所用的ASP文件,各位可以參考一下:
文件名:xmlpoll.asp 把此次投票內(nèi)容列出來,顯示成XML文件.
代碼拷貝框
<!--#include file="../admin/config.html"-->
<!-- #include file='colors.asp' -->
<%
Response.expires=0
Response.charset="gb2312"
Response.ContentType="text/xml"
'請不要修改此代碼
dim lngPollID
lngPollID=Request("PollID")
'如果沒有取得數(shù)據(jù) 就取第一個投票
if (not isnumeric(lngPollid)) or lngPollid="" then
SQL = "select top 1 id from " & strDbTable & "title order by id desc"
set rs1=conn.execute(SQL)
lngPollid=rs1("id")
rs1.close
set rs1=nothing
end if
'取得調(diào)查名和總的投票數(shù)
dim rs
dim strTitle ,lngVoter
SQL = "SELECT * FROM " & strDbTable & "title WHERE id = " & int(lngPollid)
Set rs=conn.execute(SQL)
strTitle=rs("title")
lngVoter=rs("votes")
'防止除零
if lngVoter=0 then
lngVoter=1
end if
'取得調(diào)查的投票列表
SQL = "SELECT * FROM " & strDbTable & "vote WHERE poll_id=" & int(lngPollid) & " order by answer_id asc"
set rs=conn.execute(SQL)
'代碼替換功能 防止一些不必要的符號
function ReplaceChr(Content)
'Content=Replace(Content,"源字符","目標(biāo)字符")
Content=Replace(Content,"%","%25")
Content=Replace(Content,"&","%26")
Content=Replace(Content,"+","%2b")
Content=Replace(Content,chr(13),"%0d")
ReplaceChr=Content
end function
i=1
StrXML="<pieData QUESTION="""&strTitle&""">"
do until rs.eof
StrXML=StrXML&"<pie color="&color(i)&">"
StrXML=StrXML&"<value>"&rs("no_votes")+1&"</value>"
StrXML=StrXML&"<text>"&ReplaceChr(rs("answer"))&"</text>"
StrXML=StrXML&"</pie>"
i = i+1
rs.MoveNext
Loop
strXML=strXML &"</pieData>"
set i=nothing
rs.close
set rs=nothing
conn.close
set conn=nothing
response.Write(strXML)
%>
[Ctrl+A 全部選擇 然后拷貝]
FLASH顯示面頁:
graph.asp 顯示FLASH
代碼拷貝框
<% Language=VBScript%>
<html>
<head>
<title>
投票結(jié)果
</title>
</head>
<body LEFTMARGIN="0" TOPMARGIN="0" MARGINWIDTH="0" MARGINHEIGHT="0">
<%
Dim Weeknum,PollID
PollID=Request.Querystring("PollID")
Dim Dtrdatasrc
Dtrdatasrc="xmlpoll.asp?PollID="&PollID
Dtrdatasrc=flshpollencURL(Dtrdatasrc)
%> <object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://theartemis.cn/pub/shockwave/cabs/flash/swflash.cab#version=5,0,0,0" width="550" height="220" align="middle">
<param name=movie value="flashpoll.swf?dataurl=<%=Dtrdatasrc%>"> <param name=quality value=high>
<embed src="flashpoll.swf?dataurl=<%=Dtrdatasrc%>" quality=high pluginspage="http://theartemis.cn/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash" type="application/x-shockwave-flash" width="550" height="220" align="middle" bgcolor=#99ccff>
</embed> </object>
</body>
</html>
<%
Function flshpollencURL(strURL)
strURL=replace(strURL,"?","&")
strURL=replace(strURL,"&","*")
flshpollencURL=strURL
End Function
%>
[Ctrl+A 全部選擇 然后拷貝]
上面就是實現(xiàn)FLASH投票的核心文件了.
下面是我們所要用到的FLASH文件和調(diào)用的XML文件格式:
文件名:pieData.xml 按右鍵保存
代碼拷貝,請用pieData.xml命名.
<?xml version="1.0"?>
<pieData QUESTION="你覺得站點如何?">
<pie color="FF0000">
<value>14</value>
<text>顏色不好</text>
</pie>
<pie color="00FF00">
<value>37</value>
<text>沒有內(nèi)容</text>
</pie>
<pie color="0000FF">
<value>19</value>
<text>更新太慢</text>
</pie>
<pie color="FFFF00">
<value>7</value>
<text>沒有交互性</text>
</pie>
<pie color="FF00FF">
<value>14</value>
<text>都不喜歡</text>
</pie>
</pieData>
[Ctrl+A 全部選擇 然后拷貝]
FLASH文件:
flashpoll.swf
如對本文有疑問,請?zhí)峤坏浇涣髡搲瑥V大熱心網(wǎng)友會為你解答??! 點擊進入論壇