如何使用ASP在自己的网站建立投票机制(一)
文章类别:
asp | 发表日期:2008-10-5 20:56:32
Batman 翻译整理
一个很不错的建立自己的投票系统的ASP程序大家仔细读读,只要能够理解中间的关键技术,就能够在自己的网站上建立自己的投票站了。文件整理得很仓促,希望大家谅解。
版权所有:
ASP Polls
version 1.0
Tipped Cow Development and Adrenalin Labs
结构简单介绍:
ACCESS数据库设计结构:
poll表主要字段名称:PollName,PollCreator,PollQuestion,Password,Choice1,Choice2
Choice3,Choice4,Choice5,ID(自动编号),GetName
pollresults表字段:PollID,PollAnswer,Name
1.文件db.inc
<%
Application("ASP_Poll") = "ASP_Poll"
cnString = "DRIVER={Microsoft Access Driver
(*.mdb)}; "
cnString = cnString & "DBQ=" &
Server.MapPath("Events.mdb")
Application("ASPPollDSN") = cnString
%>
1.文件creat_poll1.asp
<% Title="Poll Generator" %>
<head> <link rel="STYLESHEET" type="text/css"
href="style.css">
<title><%=Title%></title>
</head>
<body>
<div align="left"><img src="asp_poll.gif"
width="231" height="90"><br>Another joint product from <a
href="http://www.ncws.com/tippycow">Tipped Cow Development</a> and
<a href="http://dstoflet.calweb.com">Adrenalin Labs</a>
<br><br>
</div>
<center>
<%
Response.Write "<font face='arial'>"
If Request("errormessage") <> "" Then
Response.Write "<b>Error! </b>"
& Request("errormessage")
Else
Response.Write "Please complete the form below to
begin creating your own poll."
End If
%>
<br><br>
<table border=2 cellspacing=0 cellpadding=0><tr><td>
<form method="post" action="create_poll2.asp">
<table border=0 cellspacing=0 cellpadding=10 width=500><tr>
<td colspan=2 bgcolor=#000000 align=center class="bold2">
Enter Your Name as the Poll Creator
</td>
</tr><tr>
<td bgcolor=#ffffff width=25% class="bold">Poll
Creator:</td>
<td bgcolor=#ffffff>
<input type="text" name="creator"
value="<%=Request("creator")%>" size=20
class="input">
</td>
</tr>
</table>
</td></tr>
<tr><td>
<table border=0 cellspacing=0 cellpadding=10 width=500><tr>
<td colspan=2 bgcolor=#000000 align=center class="bold2">
Create a Password For Your Poll So That You Can Modify It At A
Later Time
</td>
</tr><tr>
<td bgcolor=#ffffff width=25% class="bold">Poll Admin
Password:</td>
<td bgcolor=#ffffff>
<input type="password" name="password"
value="<%=Request("password")%>" size=10 maxlength=10 maxsize=10
class=input>
</td>
</tr>
</table>
</td></tr>
<tr><td>
<table border=0 cellspacing=0 cellpadding=10 width=500><tr>
<td colspan=2 bgcolor=#000000 align=center class="bold2">
Give Your Poll a Unique Name
</td>
</tr><tr>
<td bgcolor=#ffffff width=25% class="bold">Poll
Name:</td>
<td bgcolor=#ffffff>
<input type="text" name="name"
value="<%=Request("name")%>" size=20 class=input>
</td>
</tr>
</table>
<table border=0 cellspacing=0 cellpadding=10 width=500><tr>
<td colspan=2 bgcolor=#000000 align=center class="bold2">
Do you want to have the user enter their name?
</td>
</tr><tr>
<td bgcolor=#ffffff width=25% class="bold">Require
user to enter their name:</td>
<td bgcolor=#ffffff class="bold">
Yes<input type="radio" name="GetName"
value="1"><br>
No <input type="radio" name="GetName"
value="0" CHECKED>
</td>
</tr>
</table>
</td></tr>
<tr><td>
<table border=0 cellspacing=0 cellpadding=10 width=500><tr>
<td colspan=3 bgcolor=#000000 align=center class="bold2">
Select Poll Type
</td>
</tr><tr>
<td colspan=2 bgcolor=#ffffff class="bold">What type of poll
question
do you wish to create?</td>
<td bgcolor=#ffffff class="bold">
<input type="radio" name="polltype"
value="yes_no">Yes/No<br>
<input type="radio" name="polltype"
value="multiple_choice">Multiple Choice<br>
</td>
</tr>
</table>
</td></tr></table>
<table width=500><tr>
<td colspan=3 align=right>
<input type="submit" value=" Next "
class="inline">
</td></tr>
</table>
</center>
</body>
</html>
3.文件connect.asp
<%
id = Request("id")
If id = "" Then
id = 0
End If
num = Request("choice")
If num <> "" Then
Set conn =
Server.CreateObject("ADODB.Connection")
dsnpath = "DRIVER={MICROSOFT ACCESS DRIVER
(*.mdb)}; "
dsnpath = dsnpath & "DBQ=" &
Server.MapPath("Events.mdb")
conn.open dsnpath
Set rs =
Server.CreateObject("ADODB.RecordSet")
rs.Open "PollResults", conn, 3,
3
rs.AddNew
rs("PollID") = Cint(id)
rs("Name") =
Request("Name")
rs("PollAnswer") = Cint(num)
rs.Update
rs.Close
set rs = Nothing
conn.Close
set conn = Nothing
End If
If Request("return_page") <> Empty Then
Response.Cookies("PollID")
= id
Response.Redirect
Request("return_page")
End If
%>
<html>
<body bgcolor="#4f4f4f" text="#c0c0c0" link=#f5fcdc
vlink=#f5fcdc>
<center>
<% If num <> "" Then %>
<br><br>
<table border=0 cellspacing=0 cellpadding=0><tr>
<td colspan=3 align=center><font face="verdana">
Your selection has been recorded.
</td></tr>
</table>
<% End If %>
<br><br>
<%
Set conn = Server.CreateObject("ADODB.Connection")
sql = "select * from Poll where ID = " & Cint(id)
dsnpath = "DRIVER={MICROSOFT ACCESS DRIVER (*.mdb)}; "
dsnpath = dsnpath & "DBQ=" &
Server.MapPath("Events.mdb")
conn.open dsnpath
Set rs = Conn.Execute(sql)
If rs.EOF = False Then
%>
<table border=1 cellspacing=0 cellpadding=5 width=500
bordercolor=#2f2f4f><tr>
<td colspan=3 bgcolor=#2f2f4f align=center><font
face="verdana" color=#f5fcdc>
<%=rs("PollQuestion")%>
</td></tr>
<%
Dim Choices(6)
Dim Responses(6)
For I=1 To 5
choice = rs("Choice"
& I)
Choices(I) = choice
If choice <>
"" Then
Set
conn2 = Server.CreateObject("ADODB.Connection")
sql =
"select COUNT(PollAnswer) from PollResults where PollID = " & Cint(id) &
" AND PollAnswer=" & I
dsnpath =
"DRIVER={MICROSOFT ACCESS DRIVER (*.mdb)}; "
dsnpath
= dsnpath & "DBQ=" & Server.MapPath("Events.mdb")
conn2.open
dsnpath
Set
rs2 = Conn.Execute(sql)
If
rs2.EOF = False Then
Response.Write
"<tr><td colspan=2 bgcolor=#4f4f4f align=center width=400><font
face='verdana' color=#f5fcdc>"
Response.Write
choice
Response.Write
"</td>"
Responses(I)
= rs2(0)
Response.Write
"<td colspan=1 bgcolor=#4f4f4f align=right><font face='verdana'
color=#f5fcdc><b>" & rs2(0) & "</b></td>"
Response.Write
"</tr>"
End If
rs2.Close
conn2.Close
End If
Next
End If
%>
</table>
<br><br>
<table >
<td colspan=3 align=center><font face="arial">
<font face="ms sans serif"><b> Polls
Results</b></font>
</td></tr>
<%
Total = 0
For I=1 To 5
responseCount = Responses(I)
If responseCount <>
"" Then
Total
= Total + Cint(responseCount)
End If
Next
For I=1 To 5
choice = Choices(I)
responseCount = Responses(I)
If choice <>
"" Then
Response.Write
"<tr><td colspan=1 align=left><font face='arial'>"
Response.Write
choice
Response.Write
"</td>"
Response.Write
"<td colspan=2 width=400><table border=1 cellspacing=0><tr><td
bgcolor=blue align=center width=" & ConvertToPix(responseCount) &
"><font face='ms sans serif' color=white><b>" &
ConvertToPercent(responseCount) &
"</td></tr></table></td>"
Response.Write
"</tr>"
End If
Next
Function ConvertToPix(sz)
If sz = 0 Then
ConvertToPix
= 0
Else
ConvertToPix
= Cint(400/Total * sz)
End If
End Function
Function ConvertToPercent(sz)
If sz = 0 Then
ConvertToPercent
= "0%"
Else
ConvertToPercent
= FormatPercent(sz/Total, 2)
End If
End Function
%>
</table>
<% If num = "" Then %>
<br><br>
<table border=0 cellspacing=0 cellpadding=0><tr>
<td colspan=3 align=center><font face="verdana">
<a href="default.asp?ID=<%=id%>">Add Your
Vote</a>
</td></tr>
</table>
<% End If %>
<br><br>
<table width=100%><tr><td align=right>
<table border=1 cellpadding=5 cellspacing=0 bordercolor=#f5fcdc><tr><td
bgcolor=#2f2f4f>
<font face='verdana' size=+1><a
href='javascript:history.back()'>Back</a>
</td></tr></table>
</td></tr></table>
</center>
</body>
</html>