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

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


March 25,2004
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>
Copyright © 2001-2008 Shenzhen Hiblue Software Team All rights reserved