投票系统web服务器,创建一个Web投票系统

您的位置:首页 → 精文荟萃 → 软件资讯 → 创建一个Web投票系统创建一个Web投票系统

时间:2004/10/7 19:09:00作者:蓝点

下面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

%>

Poll Example

What is your favoutrite language?

'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") & ":

"

LArs.MoveNext

Loop

'Close database connection

LArs.Close

POdc.Close

Set POdc = Nothing

%>

View Poll

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

%>

Polling Sample

'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 "" & LArs("Language") & "(Votes: " & LArs("Votes") & ")"

'Set pixel-width of table cells to percentage number

Response.Write"bgcolor=" & LArs("BarColour") & ">"

Response.Write"" & LArs("Percentage") & " %

"

LArs.MoveNext

Loop

'Close database connections

LArs.Close

POdc.Close

Set POdc = Nothing

%>

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 ;)

文章评论

发表评论

我来说两句...

提交评论

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值