Ranking Part III
- by PointsToShare
© 2011 By: Dov Trietsch. All rights reserved
Ranking Part III
In a previous blogs “Ranking an Introduction” and “Ranking Part II” , you have already praised me in “Rank the Author” and learned how to create a new element on a page and how to place it where you need it. For this installment, I just added code to keep the number of votes (you vote by clicking one of the stars) and the total vote. Using these two, we can compute the average rating.
It’s a small step, but its purpose is to show that we do not need a detailed history in order to compute the average. A running total is sufficient. Please note that once you close the game, you will lose your previous total. In real life, we persist the totals in the list itself. We also keep a list of actual votes, but its purpose is to prevent double votes. If a person has already voted, his user id is already on the list and our program will check for it and bar the person from voting again. This is coded in an event receiver, which is a SharePoint server piece of code. I will show you how to do this part in a subsequent blog.
Again, go to the page and look at the code. The gist of it is here. avg, votes, and stars are global variables that I defined before.
function sendRate(sel){//I hate long line so I created pieces of the message in their own vars var s1 = "Your Rating Was: "; var s2 = ".. "; var s3 = "\nVotes = "; var s4 = "\nTotal Stars = "; var s5 = "\nAverage = "; var s; s = parseInt(sel.id.replace("_", '')); // Get the selected star number votes = parseInt(votes) + 1; stars = parseInt(stars) + s; avg = parseFloat(stars) / parseFloat(votes); alert(s1 + sel.id + s2 +sel.title + s3 + votes + s4 + stars + s5 + avg);}
Click on the link to play and examine “Ranking with Stats”
That’s all folks!