如何使用ASP在自己的网站建立投票机制(二)

网络整理 - 09-10
Batman 翻译整理

4、文件default.asp
<%
   ID = Request("ID")
   If ID = "" Then
       ID = 30
   End If
   Title = "Polls (Create your own poll)"
%>

<html>

<head><link type="text/css" href="style.css">
  <title>ASP Polls</title>

     <script language="Javascript">

           function gatherForm(form){
               if(form.Mode[0].checked){
                     form.submit();
               }else{
                     form.action="collect.asp";
                     form.submit();
               }
           }

     </script>
  </head>


<body>
<div><img src="http://www.7880.com/Info/asp_poll.gif"><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>
<table cellspacing="0" cellpadding="2">
<tr>
<td valign="top">
<form action="default.asp">
<table bordercolor=#ccccff>
<tr>
<td>
<table border=0 cellspacing=0 cellpadding=5 bgcolor=#4f4f4f><tr>
  <td colspan=3 bgcolor=#000000 align=center>Select A Poll</td>
</tr><tr>
  <td colspan=3 bgcolor=#000000 align=center>
  <select>
<%
  Set conn = Server.CreateObject("ADODB.Connection")
  conn.Open Application("ASPPollDSN")
  sql = "select * from Poll"
  Set rs = conn.Execute(sql)
  Do While Not rs.EOF
%>


  <option value="<%=rs("ID")%>"><%=rs("PollName")%>

<%
         rs.MoveNext
  Loop
%>

</select>
</tr>

<tr>
  <td colspan=3 align=right bgcolor=#FFFFFF>
    Vote In Poll:<input type="radio" value="Vote" CHECKED><br>
    View Results:<input type="radio" value="View">
  </td></tr>

<tr>
  <td colspan=3 align=right bgcolor=#000000 align=center>
    <input type="button" value=" Go ">
  </td></tr>

</table>
</td>
</tr>
</table></form><br>
<div>
<a href="create_poll1.asp">Create your own poll</a><br>
<a href='javascript:history.back()'>Back</a>
</div>
</td>

<td valign="top">
<table border=1 cellspacing=2 cellpadding=0 bordercolor=#ccccff><tr><td>
<form method="post" action="collect.asp">
<input type="hidden" value="<%=id%>">

<%
  Set conn = Server.CreateObject("ADODB.Connection")
  conn.Open Application("ASPPollDSN")
  sql = "select * from Poll where ID = " & ID
  Set rs = conn.Execute(sql)
  If rs.EOF = False Then
%>

<table border=0 cellspacing=0 cellpadding=10 bgcolor=#4f4f4f><tr>
  <!-- <td colspan=3 bgcolor=#2f2f4f align=center><font face="verdana" color=#f5fcdc>
   Poll: <%=rs("PollName")%>
  </td> -->
</tr><tr>
  <td colspan=3 bgcolor=#000000 align=left><%=rs("PollQuestion")%>
</tr>
    <%
      For I=1 To 5
          choice = rs("Choice" & I)
          If choice <> "" Then
    %>
         <tr> <!-- <td width=50 colspan=1 bgcolor=#4f4f4f> </td> -->
         <td colspan=2 bgcolor=#FFFFFF>
         <%=choice%></td><td bgcolor=#FFFFFF><input type="radio" value="<%=I%>">
         </td></tr>
    <%
          End If
      Next
    %>

</tr>
   <% If rs("GetName") = "1" Then %>
           <tr><td colspan=1 align=right bgcolor=#FFFFFF>
Your Name:</td>
           <td colspan=2 align=right bgcolor=#FFFFFF>
             <input type="text">
          </td></tr>
   <% End If %>
<tr>
  <td colspan=3 align=right bgcolor=#000000 align=center>
    <input type="submit" value="Submit Vote">
  </td></tr>
</table>

<%
     Else
        Response.Write "Invalid Poll Id Request!"
     End If
%>
</td></tr></form></table>

</td>
</tr>
</table>
</body>
</html>

5、文件global.asa
<script LANGUAGE="VBscript" RUNAT="SERVER">

   Sub Application_OnStart
      Application("ASP_Poll") = "ASP_Poll"
      cnString = "DRIVER={Microsoft Access Driver (*.mdb)}; "
      cnString = cnString & "DBQ=" & Server.MapPath("Events.mdb")
      Application("ASPPollDSN") = cnString
   End Sub
</script>

6、文件pool.inc
<%
   DBPath = Server.MapPath("/poll/Events.mdb")
   ID = 28
   If Request.Cookies("PollID") = CStr(ID)  Then
         ShowDisplay
   Else
         ShowVote
   End If

Function ConvertToPercent(total, sz)
    If sz = 0 Then
         ConvertToPercent = "0%"
    Else
         ConvertToPercent = FormatPercent(sz/total, 2)
    End If
End Function

Sub ShowVote

%>

<div align=right>
<table width=125 border=1 cellspacing=0 cellpadding=0><tr><td>
<form method="post" action="/poll/collect.asp">
<input type="hidden" value="<%=id%>">
<input type="hidden" value="<%=Request.ServerVariables("PATH_INFO")%>">
<%
  Set conn = Server.CreateObject("ADODB.Connection")
  dsnpath = "DRIVER={MICROSOFT ACCESS DRIVER (*.mdb)}; "
  dsnpath = dsnpath & "DBQ=" & DBPath
  conn.open dsnpath
  sql = "select * from Poll where ID = " & ID
  Set rs = conn.Execute(sql)
  If rs.EOF = False Then
%>

<table width=125 border=0 cellspacing=0 cellpadding=2 bgcolor=#4f4f4f>
<tr>
  <td colspan=3  bgcolor=#2f2f4f align=center>
    <%=rs("PollQuestion")%>
   </td>
</tr>
    <%
      For I=1 To 5
          choice = rs("Choice" & I)
          If choice <> "" Then
    %>
         <tr>
         <td colspan=2 bgcolor=#000000 valign=top width=80%>
         <%=choice%> </td><td valign=top colspan=1 width=20% bgcolor=#000000> <input type="radio" value="<%=I%>">
         </td></tr>
    <%
          End If
      Next
    %>

<tr>
  <td colspan=3 align=center bgcolor=#2f2f4f align=right>
    <input type="submit" value="Submit" class=nav>
  </td></tr>
</table>
<%
     End If
%>

</td></tr></form></table>

</center>

<%

End Sub


Sub ShowDisplay

   Set conn = Server.CreateObject("ADODB.Connection")
   sql = "select * from Poll where ID = " & Cint(ID)
   dsnpath = "DRIVER={MICROSOFT ACCESS DRIVER (*.mdb)}; "
   dsnpath = dsnpath & "DBQ=" & DBPath
   conn.open dsnpath
   Set rs = Conn.Execute(sql)
   If rs.EOF = False Then
      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=" & DBPath
              conn2.open dsnpath
              Set rs2 = Conn.Execute(sql)
              If rs2.EOF = False Then
                 Responses(I) = rs2(0)
              End If
              rs2.Close
              conn2.Close
          End If
      Next
%>
  <div>
<table border=1 cellspacing=0  cellpadding=2><tr><td>
  <table width=125 border=0 cellspacing=0><tr>
  <td colspan=2  bgcolor=#2f2f4f align=center class=orgbold>ASP Poll
  </td></tr>
  <tr><td colspan=2  align=center bgcolor=#ccccff class=black>
Q:<%=rs("PollQuestion")%>
  </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='verdana' size=-1 color=#f0f0f0>"
                 Response.Write choice
                 Response.Write "</td>"
                 Response.Write "<td>" & ConvertToPercent(total, responseCount) & "</td>"
                 Response.Write "</tr>"
          End If
      Next
      Response.Write "</table></td></tr></table></div>"
  End If
End Sub
%>
</div>