WEB开发网      濠电娀娼ч崐濠氬疾椤愶附鍋熸い鏍ㄧ〒闂勫嫰鏌﹀Ο渚Ц闁诲氦顕ч湁婵犲﹤楠告禍鍓х磼鏉堛劌绗氶柟宄版嚇閹晠宕归銈嗘濠电偞鍨堕幐鎾磻閹捐秮褰掓偐閻戞﹩妫勯梺鎼炲妼鐎涒晝绮嬪澶樻晝闁挎繂鏌婇敃鍌涚厵閻庢稒锚閻忥絾绻濇繝鍐ㄧ伌闁诡垰鍟村畷鐔碱敂閸♀晙绱樺┑鐐差嚟婵儳螞閸曨剚鍙忛柍鍝勬噹缁€澶嬬箾閹存繄锛嶆鐐灲閹綊宕惰濡插鏌涢妸銉ヮ劉缂佸倸绉归弫鎾绘晸閿燂拷 ---闂備焦瀵уú鈺呭箯閿燂拷
开发学院WEB开发ASP 创建一个Web投票系统 阅读

创建一个Web投票系统

 2001-08-22 11:05:41 来源:WEB开发网 闂備線娼уΛ鎾箯閿燂拷闂備礁鎲¢崹鐢垫崲閹扮増鍎嶆い鎺戝€甸崑鎾斥槈濞嗗秳娌紓鍌氱▌閹凤拷濠电姭鎷冮崨顓濈捕闂侀潧娲ゅú銊╁焵椤掍胶鈯曢柕鍥╁仧缁辩偤鏁撻敓锟�闂備線娼уΛ鎾箯閿燂拷  闂備胶枪缁绘鈻嶉弴銏犳瀬闁绘劖顐煎☉妯锋瀻闁归偊鍓涘▔姘舵⒑閸涘⿴娈旀繛灞傚妼閳绘捇骞嬪┑鎰濡炪倖姊婚崢褏鎲撮敓锟�
核心提示:下面zip文件:http://www.content.aspdir.co.uk/files/Article-11.zipDuring this article you will learn how to construct your own web poll using ASP. The article PResume
下面zip文件:http://www.content.aspdir.co.uk/files/Article-11.zip

During this article you will learn how to construct your own web poll using ASP. The article PResumes you
already understand basic database interaction.



The following samples of code allow a user to select one of four options to a question. The user's vote is
then recorded in a database and the user is taken to a page where the results for each option can be
viewed in statistical, numerical and graphical form. Not bad, huh?

The whole application is based on the database itself, so when the values within the database are altered,
the application automatically changes. The database design itself, is not included within this article so
make sure to download a copy of the entire application, including the database before running the code.

The code for the first page is shown as follows: -

Page: default.asp

<%
'Connects to database using recordset method
Function dataConn(database,connection,recordset)
  Set connection = Server.CreateObject("ADODB.Connection")
  Set recordset = Server.CreateObject("ADODB.Recordset")
  connection.Open "DBQ=" & Server.Mappath(database) & ";Driver={Microsoft access Driver (*.mdb)};"
End Function
%>
<HTML>
<HEAD>
  <TITLE>Poll Example</TITLE>
</HEAD>

<BODY>
  <FORM name="languages" method=post action="pollResults.asp">
  <P>What is your favoutrite language?</P>
<%
'Calls dataConn function to open dbPoll.mdb
dataConn "files/dbPoll.mdb",POdc,LArs

'Selects all fields within tblLanguages
LArs.Open "SELECT * FROM tblLanguages", POdc

'Loop through and display each record within the database as a radio button
Do While Not LArs.EOF
  Response.Write LArs("Language") & ": <INPUT type=radio name='language' value='" & LArs("Language")
& "'><BR>"
  LArs.MoveNext
Loop

'Close database connection
LArs.Close
POdc.Close
Set POdc = Nothing
%>
  <A href="pollResults.asp">View Poll</A>
  <INPUT type=submit value="Vote">
  </FORM>
</BODY>
</HTML>


Once connected to the database the script loops through each record, and displays that option as a radio
button. When the 'Vote' button is pressed, the individual value of the selected radio button is submitted
to the next page.

The code for the next page is shown below: -

Page: pollResults.asp

<%
'Define all variables that will be used
Dim I, Percent

'Connects to database using recordset method
Function dataConn(database,connection,recordset)
  Set connection = Server.CreateObject("ADODB.Connection")
  Set recordset = Server.CreateObject("ADODB.Recordset")
  connection.Open "DBQ=" & Server.Mappath(database) & ";Driver={Microsoft Access Driver (*.mdb)};"
End Function
%>
<HTML>
<HEAD>
  <TITLE>Polling Sample</TITLE>
</HEAD>

<BODY>
<%
'Calls dataConn function to open dbPoll.mdb
dataConn "files/dbPoll.mdb",POdc,LArs

'Selects all fields within tblLanguages
LArs.Open "SELECT * FROM tblLanguages", POdc,1,2

'Loop through and total up number of votes for all records
Do While Not LArs.EOF

  'If record contains voted language then increment votes
  If LArs("Language") = Request.Form("language") Then
     LArs("Votes") = LArs("Votes") + 1
     LArs.Update
  End If
  I = I + LArs("Votes")
  LArs.MoveNext
Loop

'Calculate value which will be used to calculate percentage
Percent = 100 / I
LArs.MoveFirst

'Loop through and recalculate percentage of votes for each record
Do While Not LArs.EOF
  LArs("Percentage") = LArs("Votes")*Percent
  LArs.Update
  LArs.MoveNext
Loop
LArs.Close

'Selects all fields within tblLanguages
LArs.Open "SELECT * FROM tblLanguages ORDER BY Percentage DESC", POdc

'Loop through and display all updated records
Do While Not LArs.EOF
  Response.Write "<B>" & LArs("Language") & "</B><I> (Votes: " & LArs("Votes") & ")</I>"

  'Set pixel-width of table cells to percentage number
  Response.Write"<TABLE cellpadding=0 cellspacing=0 height=10 width=" & LArs("Percentage") & "
bgcolor=" & LArs("BarColour") & ">"
  Response.Write"<TR><TD></TABLE>" & LArs("Percentage") & " %<BR>"
  LArs.MoveNext
Loop

'Close database connections
LArs.Close
POdc.Close
Set POdc = Nothing
%>

</BODY>
</HTML>


The second page first retrieves the selected option from the form submitted by the user. The page then
loops through each record and calculates the total number of votes in order to find out what number of
votes is equal to 1%. When the page finds the record that the user submitted, presuming a value was
submitted at all, the number of votes for that option is incremented.

Using the value which determines how many votes are equal to 1%, we again loop through each record and re-
calculate the percentage of votes each option has received by multiplying this previously determined value
by the number of votes that option has received. It's all 10 y/o maths stuff really, so be very ashamed of
yourself if you're finding this difficult, :P.

Once the records have been updated, all that is left to do is simply loop through each record in
descending order of their percentage.

The small bar underneath each option is just a table cell with it's pixel-width determined by the
percentage of that particular option. All in all it's pretty simple stuff, just takes a bit of work to fix
it all together.

Have a Nice Day,
          sTePHeN ;)

Tags:创建 一个 Web

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接