3 pagine in totale: <<Indietro 1 [2] 3 Avanti >>
Il sistema di votazione
Il file vota.asp avrà il compito di elaborare i dati presi dal form e dal database e di restituire l'output all'utente.
Eccone il contenuto:
<!-- #include file="adovbs.inc" -->
<%
'prima di iniziare l'elaborazione, eseguo un controllo in maniera
'da bloccare l'esecuzione e stampare a video un messaggio di errore
' nel caso l'utente abbia gia votato o non abbia
'selezionato nessuna opzione. Il controllo è basato sui cookie.
'estraggo dal cookie il valore
dim controllo
controllo = Request.Cookies("sondaggio")("controllo")
'se la variabile controllo è uguale a 1 l'utente ha gia votato
if controllo = 1 then
Response.Write "Hai gia votato"
'controllo se è stata selezionata un'opzione nel form
elseif request.form("voto") = "" then
Response.Write "Non hai selezionato nessuna opzione"
else
'l'utente non ha ancora votato, quindi creiamo il cookie in
'maniera da bloccare la votazione in futuro
Response.Cookies("sondaggio")("controllo") = 1
'ci connettiamo al database usando una connessione DNS-LESS
dim conn
set conn = Server.CreateObject("ADODB.Connection")
conn.Open "driver={Microsoft Access Driver *.mdb)};dbq="&Server.MapPath("vota.mdb")
dim rs
set rs = Server.CreateObject("ADODB.Recordset")
rs.Open "SELECT * FROM vota",conn, adOpenForwardOnly, adLockOptimistic
'prendiamo tutti i valori dal database
dim opzione1, opzione2, opzione3, opzione4, opzione5, voto
opzione1= rs.fields("opzione1")
opzione2= rs.fields("opzione2")
opzione3= rs.fields("opzione3")
opzione4= rs.fields("opzione4")
opzione5= rs.fields("opzione5")
'prende il valore dal form
voto = request.form("voto")
'controllo il valore che ha la variabile voto, ossia la votazione
'fatta dall'utente, e dopo aver incrementato di 1 il valore presente
'nel database, lo aggiorno
Select Case voto
Case "primo"
opzione1 = opzione1 + 1
rs("opzione1")=(opzione1)
rs.Update
Case "secondo"
opzione2 = opzione2 + 1
rs("opzione2")=(opzione2)
rs.Update
Case "terzo"
opzione3 = opzione3 + 1
rs("opzione3")=(opzione3)
rs.Update
Case "quarto"
opzione4 = opzione4 + 1
rs("opzione4")=(opzione4)
rs.Update
Case "quinto"
opzione5 = opzione5 + 1
rs("opzione5")=(opzione5)
rs.Update
End Select
'libero risorse
rs.close
set rs = nothing
'calcolo la somma dei valori presenti nel database
dim total, unoper, dueper, treper, quattroper, cinqueper
total= CDbl((opzione1)+(opzione2)+(opzione3)+(opzione4)+(opzione5))
'per ogni valore calcolo la percentuale visualizzando solo un valore
' dopo la virgola
unoper = FormatPercent((opzione1 / total), 1)
dueper = FormatPercent((opzione2 / total), 1)
treper = FormatPercent((opzione3 / total), 1)
quattroper = FormatPercent((opzione4 / total), 1)
cinqueper = FormatPercent((opzione5 / total), 1)
'prendo le percentuali dei voti e li converto in interi.
' Questo servirà per visualizzare la barra nel grafico.
dim unobarra, duebarra, trebarra, quattrobarra, cinquebarra
unobarra = FormatNumber(unoper) * 100
duebarra = FormatNumber(dueper) * 100
trebarra = FormatNumber(treper) * 100
quattrobarra = FormatNumber(quattroper) * 100
cinquebarra = FormatNumber(cinqueper) * 100
%>Per quanto riguarda la visualizzazione, possiamo gestirla come meglio vogliamo.
Consiglio comunque di mettere un controllo in maniera che all'apertura del sondaggio quando ci saranno di sicuro dei valori che restituiranno 0,0%, questi non vengano visualizzati ma al loro posto venga visualizzato un messaggio tipo "Nessun voto".
3 pagine in totale: <<Indietro 1 [2] 3 Avanti >>
Attenzione: Questo articolo contiene un allegato
Contenuti dell'articolo
- Pagina 1
- Pagina 2
- Pagina 3
Aggiungi un nuovo commento »»»
Per inserire un commento, devi registrarti alla nostra community.








Difficoltà
Stampa
Download



