教程中国
PHOTOSHOP CS9.0中文版 MAYA 8.5 FOR WINDOWS Corel Painter v9.0 Flash MX2004 中文版 Illustrator cs2 中文版
VC++6.0含sp6 中英文版 VB6.0 +sp6 简体中文版 Borland Delphi 7汉化版 MSDN for vb6.0中文版 Visual Studio 2005简体
教程中国下属 文件存储共享专家BIBIDU.COM 提供大型软件,教材,源码,电影,音乐,图书等下载 更多精品请点此进入
  您目前所在位置: 教程中国 >> 编程基地 >> ASP >> ASP+VML+DB实现投票统计项目。 RSS订阅
ASP+VML+DB实现投票统计项目。
ASP+VML+DB实现投票统计项目。(1)
教程(视频,书籍)下载:  ASP.NET AutoCAD 数据库 C# ASP java photoshop 网页设计 delphi 3dmax Flash C++ VB 张孝祥 实例   更多请进入BIBIDU搜索
IT搜索引擎   
几个月前我看到过一位网友lshdic写的一篇用JS+VML的《使用 Vml 制作立体柱状投票统计图的完整程序》。
       我觉得这个方法非常不错,可以不使用图片就生成统计图,现在就让我们一起来用ASP实现这个程序。

      准备工作:用ACCESS建立一个MDB数据库,名为vote.mdb,并且在数据库中建立如下两个表:




然后建立我们按照ASP开发的惯例建立连接数据库的文件conn.asp
<%
'conn.asp

Set conn=Server.CreateObject("ADODB.Connection")
conn.Open "driver={Microsoft Access Driver (*.mdb)};dbq="& Server.MapPath("vote.mdb")
%>

显示投票项目的列表,因为我们要制作的是一个多项目的投票系统vote_list.asp
<!--#include file="conn.asp"-->
<html>
<head>
<title>投票项目列表</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<link href="../images/main.css" rel="stylesheet" type="text/css">
</head>

<%
set rs=conn.execute("select * from votetitle order by voteid desc")
%>
<table border=1 cellspacing="0" style="border-collapse: collapse" cellpadding="0" bgcolor="#ffffff" bordercolor="#000000" width=100%>
  <tr>
    <td bgcolor="#EFEFEF">所有投票列表</td>
  </tr>
  <%do while not rs.eof%>
  <tr>
    <td>编号:<font color="#FF0000"><%=rs("voteid")%>&nbsp; </font><a href="vote.asp?voteid=<%=rs("voteid")%>" target="_blank"><%=rs("votetitle")%>
      </a>(<%=rs("time")%>)</td>
  </tr>
  <%rs.movenext 
loop 
rs.close
set rs=nothing%>
</table>
</body>
</html>

投票显示页面vote_show.asp
<%if request("voteid")="" then
response.write "参数没有指定。"
response.End()
end if%>
<!--#include file="conn.asp"-->
<html>
<head>
<title>查看结果</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<STYLE>
td{font-size:12px}
body{font-size:12px}
v\:*{behavior:url(#default#VML);} //这里声明了v作为VML公用变量
</STYLE>
<link href="../images/main.css" rel="stylesheet" type="text/css">
</head>
<%
dim voteid
voteid=request("voteid")
set rs=conn.execute("select count from vote,votetitle where votetitle.voteid="&voteid&" and vote.voteid=votetitle.voteid order by id")
iii=0
do while not rs.eof
ii=ii+1
if ii=1 then
ceocio=trim(rs("count"))
ceocio1=trim("array1["&iii&"]")
else
ceocio=trim(ceocio&","&rs("count"))
ceocio1=trim(ceocio1&"+array1["&iii&"]")
end if
iii=iii+1
rs.movenext 
loop 
rs.close
set rs=nothing
'response.write ii
'response.write ceocio1
%>
<script>
array1=new Array(<%=ceocio%>) //不同的投票票数
allstr=<%=ceocio1%>
//alert(allstr)
//allstr=array1[0]+array1[1]+array1[2]+array1[3]+array1[4]+array1[5] //得到总数
for(i=0;i<=<%=(ii-1)%>;i++){
mathstr=Math.round(100/(allstr/array1[i])) //求百分之几, 100/(总和/单个)
document.write ("<v:rect fillcolor='lime' style='width:20;color:navy;height:"+500*<%=(ii-1)%>/(1000/mathstr)+"'><br>&nbsp;%"+mathstr+"<br>"+array1[i]+"人<v:Extrusion backdepth='15pt' on='true'/></v:rect>")
}
</script>

<%
voteid=request("voteid")
set rs=conn.execute("select * from vote,votetitle where votetitle.voteid="&voteid&" and vote.voteid=votetitle.voteid order by id")
%>
<table border=1 cellspacing="0" style="border-collapse: collapse" cellpadding="2" bgcolor="#ffffff" bordercolor="#000000" width=100%>
  <tr>
    <td bgcolor="#EFEFEF">关于:<font color="#FF0000"><%=rs("votetitle")%></font>的调查结果:<br>
      共有<b><font color="#FF0000"><%=rs("total")%></font></b>人参与调查<br>
      (<%=rs("time")%>到<%=date%>)</td>
  </tr>
  <%do while not rs.eof
dim i
i=i+1%>
  <tr>
    <td>选项<%=i%>:<%=rs("title")%> &nbsp;&nbsp;&nbsp; <font color="#FF0000"><%=rs("count")%>人</font></td>
  </tr>
  <%rs.movenext 
loop 
rs.close
set rs=nothing%>
  <tr>
    <td> </td>

来源:upschool.cn
作者:
关键字:
发表日期:2006-7-26

网页显示有限 阅读全文请下载本文完整版WORD文档

上一篇:分頁控制   下一篇:通过ADO连接各种数据库的字符串翠集(二)


共3页 9 7 [1] [2] [38 :>

2009-1-8 20:51:58
本文的相类似文章
在学习中进步 在进步中成长 教程中国相随您的成长之路
华腾联合科技股份有限公司版权所有
广告联系:Rosibo@163.com