深圳升蓝软件
数据库开发 .Net技术  |  ASP技术 PHP技术 JSP技术 应用技术类   
Hiblue Software

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


March 25,2004
Batman 翻译整理
   
    4、文件default.asp
    <%
       ID = Request("ID")
       If ID = "" Then
           ID = 30
       End If
       Title = "Polls (Create your own poll)"
    %>
   
    <html>
   
    <head><link rel="STYLESHEET" 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 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>
    <table width="100%" cellspacing="0" cellpadding="2">
    <tr>
    <td align="left" width="25%" valign="top"
    class="bold">
    <form action="default.asp">
    <table width="100" border="1" bordercolor=#ccccff>
    <tr>
    <td>
    <table border=0 cellspacing=0 cellpadding=5 bgcolor=#4f4f4f><tr>
      <td colspan=3 bgcolor=#000000 align=center
    class="bold2">Select A Poll</td>
    </tr><tr>
      <td colspan=3 bgcolor=#000000 align=center>
      <select name="ID" onChange="gatherForm(this.form)"
    class="input">
    <%
      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 class="bold">
        Vote In Poll:<input type="radio"
    name="Mode" value="Vote" CHECKED><br>
        View Results:<input type="radio"
    name="Mode" value="View">
      </td></tr>
   
    <tr>
      <td colspan=3 align=right bgcolor=#000000 align=center>
        <input type="button" value=" Go "
    onClick="gatherForm(this.form)" class="inline">
      </td></tr>
   
    </table>
    </td>
    </tr>
    </table></form><br>
    <div align="left" class="bold">
    <a href="create_poll1.asp">Create your own poll</a><br>
    <a href='javascript:history.back()'>Back</a>
    </div>
    </td>
   
    <td align="center" width="75%" valign="top">
    <table width="100" border=1 cellspacing=2 cellpadding=0
    bordercolor=#ccccff><tr><td>
    <form method="post" action="collect.asp">
    <input type="hidden" name="id" 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
    class="bold2"><%=rs("PollQuestion")%>
    </tr>
        <%
          For I=1 To 5
              choice = rs("Choice"
    & I)
              If choice <>
    "" Then
        %>
             <tr> <!-- <td width=50
    colspan=1 bgcolor=#4f4f4f>&nbsp;</td> -->
             <td colspan=2 bgcolor=#FFFFFF
    class="bold" align="left">
             <%=choice%></td><td
    bgcolor=#FFFFFF align="left"><input type="radio"
    name="choice" value="<%=I%>">
             </td></tr>
        <%
              End If
          Next
        %>
   
    </tr>
       <% If rs("GetName") = "1" Then %>
               <tr><td
    colspan=1 align=right bgcolor=#FFFFFF class="bold">
    Your Name:</td>
               <td colspan=2
    align=right bgcolor=#FFFFFF>
                 <input
    type="text" name="Name">
              </td></tr>
       <% End If %>
    <tr>
      <td colspan=3 align=right bgcolor=#000000 align=center>
        <input type="submit" value="Submit Vote"
    class="inline">
      </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" name="id" value="<%=id%>">
    <input type="hidden" name="return_page"
    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"
    name="choice" 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 align="right">
    <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>
Copyright © 2001-2008 Shenzhen Hiblue Software Team All rights reserved