L'applicazione a livello client viene scomposta in diversi layer, ognuno delegato ad un determinato compito.
Lato server avremo un file xml aggiornato da una serie di classi che utilizzano le DOM Functions facendo anche uso di DOMXPath::query per la ricerca del valore della chiave GET (p di default) nel documento.
In parole povere lo script si attiva solamente se è presente la chiave specificata in get, effettua una prima chiamata al server tramite AJAX passando come parametro il suo valore e ricevendo un array, ricordo che gli array associativi in javascript sono oggetti, in formato json.
Al submit dell'user invia, sempre tramite ajax, un oggetto contenete il valore di get e il valore del voto dato dall'utente, ricevendo i nuovi valori del sondaggio (sempre nello stesso formato), aggiornando le nostre stelline.
Dopo il submit viene settato tramite server un cookie, ringraziato l'user per il suo voto, disabilitato il tasto submit (lato client si inibisce il doppio voto facendo un controllo sul coookie, se esiste si disabilita il submit)
Schema file xml inizio
Codice xml: <?xml version="1.0" encoding="utf-8"?> <poll> <articles> </articles> </poll>
Schema file xml dopo votazione
Codice xml: <?xml version="1.0" encoding="utf-8"?> <poll> <articles> <article> <id>3</id> <rate>3</rate> <rate>1</rate> </article> </articles> </poll>
Conclusioni
Lo script è totalmente commentato se qualcosa non vi risulta chiaro un commento è sempre apprezzato ;).
Puoi scaricare l'intero script qui.