当前位置: 首页 > 图文教程 > 网络编程 > ASP > ASP+VML+DB实现投票统计项目

ASP
一个ASP版的图片浏览管理器
无组件上传图片至SQLSERVER数据库
利用Jmail.Message发送邮件
用Web页面执行客户端程序
多图片上传到指定的目录并存到数据库
dreamweaverMX通用分页代码研究
下拉菜单输入,根据输入内容自动定位
中文的无组件文件上传ASP函数
一个利用adsi得到局域网信息的asp文件
根据需要动态include不同的文件
让自定义文件下载支持断点续传
用数组实现数据记录的批量录入方法
上传的进度条 实时反映上传情况
用ASP动态生成javascript的表单验证代码
ASP 编程中20个非常有用的例子
ASP生成Word文档的又一方法
用asp解析图片地址,并将其保存。
利用ASP的文件操作实现用户管理
创建 Visual Basic COM 组件在 ASP 中使用
调试 ASP 中使用的 Visual Basic COM 组件

ASP+VML+DB实现投票统计项目


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

 

       几个月前我看到过一位网友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>")