Our poll application will take the following steps:
1.) Check to see if the person has already voted (via a cookie)
2.) If the user has voted, show them the results 3.) If the user has not voted, allow them to vote 4.) Once they vote, write a cookie saying they have voted and take them back to the page they came from
We will do this with just one .ASP file. This ASP file,
pollResults.asp will be called whenever a
user votes on a particular item. This file will update the database count and send the user back to the
page they came from (in essence it will accomplish task #4). There is code that will have to go into
whatever .ASP file you want the voting to occur in. Let's take a look at this code first.
First, this code will see if the person has already voted, by examining a cookie. We'll also go ahead and create/open our connection object and create our recordset object. Finally, we will specify the width of the poll table. This is important! This information is used to draw the bar graphs to scale:
At this point,
strVoted will contain either no value, or will contain the string "Yes."
If it contains the value "Yes," then we know the user has already voted, and we want to show them the
results from the poll. We'll get to that, but first let's look at what happens if they haven't voted.
We want to show them the voting options. Here is our SQL to get the name of the Poll and all of the
Voting Options associated with that Poll.
Note that in the
WHERE clause we specify that we only want the poll where today's date
lies between the
DateEnd parameters. Now, we want to display the
Poll and its options:
This will create the poll interface, as seen on the right. Looks pretty slick, eh? Feel free to change the font, colors, and other artsy fartsy stuff. What I think is super-neat about all of this is that it is dynamic, and it is a breeze to add a poll! It could even be easier with a Poll-Creation Wizard with a web interface. This wouldn't be difficult to do; in fact I challenge you to write one! :)
Now, there are a few things not shown in the code. For example, you may have noticed in the FORM tag there
OneOptionChecked(). I will not show this code in
this article, but it is all in the attached files at the end of this article.
It's time to move onto Step 3, where we'll look at submitting our votes and having them updated in the database!