Votes avec choix et réponses multiples

fred1254

Nouveau membre
Bonjour,

je suis à la recherche d'un script (si possible pas de php) pour effectuer un système d'engagement, j'ai effecuté de longues recherches sur le net et je n'ai trouvé que des systèmes avec choix multiples mais réponse unique, alors que je cherche choix multiples et réponses multiples, je m'explique.

Les visiteurs voient sur la page concernée une liste de 10 engagements, concernant l'environnement, avec en face de chaque engagement une case à cocher (ils peuvent voter sur tous si ils le souhaitent) et valider afin d'attérir sur la page des résultats avec le sur chaque engagement le nombre de personnes et tout en bas le total de votants.

j'espère avoir été assez clair pour vous :) je continue mes recherches de mon côté.

Merci à tous
 

dartyduck

Grand Meuble Suprême
tu es obligé d'utiliser le php et mysql pour envoyer et stocker dans la base de donnée :o
 

zeb

Modérateur
dartyduck>> c'est fini de dire n'importe quoi ! :fou:

PHP est donc le seul langage pour rendre dynamiques les pages webs ?
MySQL est donc le seul système de bases de données ?
(Lis quand même la suite, j'y reparles de toi ;))

_____________________


Fred>> si tu postes dans la cat' programmation, ne t'attends pas à un truc tout fait. On peut t'aider, certes, mais pas en faisant le boulot à ta place !

Si tu postes dans la sous-cat' PHP, tu risques d'avoir une réponse en rapport avec le PHP :/
Tu sais ne pas vouloir de PHP, mais que veux-tu alors ?

dardyduck est un tout petit peu expéditif, mais il n'est pas loin de la vérité : si tu as une base MySQL et un serveur Apache/PHP, je ne vois pas d'autres solutions intelligentes que de faire un script PHP.

Au fait, quel est ton environnement ? (système, base de données, serveur http+modules)
 

fred1254

Nouveau membre
concernant le sujet c'est bien écrit php&mysql&asp, ensuite je cherche pas à ce que l'on fasse les choses pour moi en fait j'ai deja mon système de vote mais je n'arrive pas à l'adapter pour des reponses multiples avec des cases à cocher, j'ai bien mis des cases à cocher dans mon formulaire mais par contre les reponses ne sont pas bien comptabilisées en bref ça merde lol.
Voici mon code :

[cpp]<html>
<head>
<title>Votez pour votre affiche pr&eacute;f&eacute;r&eacute;e</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<script language="JavaScript">
<!--
window.onblur = function() {
self.focus()
}
function VisioAffiche (fichier,w,h) {
ff=window.open(fichier,"new","toolbar=no,scrollbars=yes,left=340,top=100,resizable=no,fullscreen=yes"); if(ff) { ff.focus();ff.resizeTo(1024,800) }
}
function VoteAffiche (fichier,w,h) {
ff=window.open(fichier,"new","toolbar=no,scrollbars=no,left=340,top=100,resizable=no"); if(ff) { ff.focus();ff.resizeTo(340,900) }
}
function Retour (fichier,w,h) {
ff=window.open(fichier,"new","toolbar=no,scrollbars=yes,left=340,top=100,resizable=no"); if(ff) { ff.focus();ff.resizeTo(690,590) }
}
function Affiches (fichier,w,h) {
ff=window.open(fichier,"new","toolbar=no,scrollbars=yes,left=340,top=100,resizable=no"); if(ff) { ff.focus();ff.resizeTo(800,830) }
}
//-->
</script>
</head>
<body bgcolor="#b3dc10" text="#000000">
<table width="300" border="0" cellspacing="0" cellpadding="0" height="52">
<tr>
<td width="300" height="32">
<div align="center"><img src="Concours.gif" width="162" height="32"></div>
</td>
</tr>
<tr>
<td width="300" height="20">
<div align="center"><img src="Votez.gif" width="247" height="20"></div>
</td>
</tr>
</table>
<p>
<%@LANGUAGE="VBSCRIPT"%>
</p>
<table width="300" border="0" cellspacing="0" cellpadding="0" height="328">
<tr>
<td width="300" valign="top">
<!--#include file="../../../../db/Connections/VoteBDD.asp" -->
<%
SQL = "SELECT TOP 1 * FROM Questions " & _
"ORDER BY VoteDate DESC"
RSQuestions.open SQL, Conn, 3, 3
' on ne selectionne que le dernier sondage entré (top 1)

VoteID = RSQuestions("VoteID")
' on récupère l'ID du sondage, que l'on placera dans un cookie

VoteQuestion = RSQuestions("VoteQuestion")
' on récupère la question du sondage en cours


' --------------- Validation du formulaire ---------------
' si le formulaire est validé, on prepare la mise à jour de la table...
If Request.QueryString("valide") = "true" then

SQL = "UPDATE Reponses " & _
"SET Compteur = Compteur + 1 " & _
"WHERE VoteOptionID= " & _
Request.QueryString("choix") & ";"

If Int(Request.Cookies("VoteCookie")("VoteID")) <> VoteID then
' si le visiteur n'avait pas encore donné son avis pour ce vote... et on execute...

Conn.Execute SQL
Response.Cookies("VoteCookie").Expires = Now()
' on autorise 1 vote tout les now() + x jours, à définir selon vos besoins
Response.Cookies("VoteCookie")("VoteID") = VoteID
Response.write " Le vote est validé. Merci!"

End if
End if
' ------------ Fin de validation du formulaire -----------


SQL = "SELECT * FROM Reponses " & _
"WHERE VoteID = " & VoteID
set RSReponses = Server.CreateObject("ADODB.Recordset")
RSReponses.Open SQL, Conn, 3, 3
' on extrait les réponses possibles pour ce sondage

Total = 0

While Not RSReponses.EOF
' on récupère le nombre de réponses totales données pour ce sondage
Total = Total + RSReponses("Compteur")
RSReponses.MoveNext
Wend


RSReponses.MoveFirst
' on se replace sur le 1er enregistrement


If Request.QueryString("voir") = "true" OR Request.QueryString("valide") = "true" _
OR cInt(Request.Cookies("VoteCookie")("VoteID")) = VoteID then
' --------------- Affichage des resultats ---------------
' si on a voté, déjà voté, ou demandé les résultats

' protection "Dépassement de capacité" d'un entier
' si l'on affiche les résultats et que personne n'a encore voté

If Total = 0 then
Response.write "Aucun vote !"
Else

' création de la table HTML
%>
<br>
<table width="302">
<tr>
<td colspan="3"> <%=VoteQuestion%> <br>
</td>
</tr>
<% while not RSReponses.EOF
pVotes = (RSReponses("Compteur") / Total) * 100
' pourcentage = (réponses pour la question / total réponses données) * 100
%>
<tr>
<td width="44"><a href='JavaScript:Affiches("../concours/<%=RSReponses("VoteOption")%>.asp")'><%=RSReponses("VoteOption")%></a></td>
<td width='14'><img src='/Marches/voteASP/vote.gif' height='5' width='<%=Round(pVotes,0)%>'></td>
<td width="228"><%=Round(pVotes,1)%> %</td>
</tr>
<% RSReponses.movenext : wend
'on boucle sur les réponses en sortant leur désignation
' le pourcentage de vote arrondi et une barre graphique
%>
</table>
<br>
<% Response.write Total & " votes ont été effectués" : End If %>
<br>
<font face="Comic Sans MS, Verdana, Arial" size="2"><a href='javascript:VoteAffiche("vote.asp")'>Retourner
aux votes</a></font> <br>
<% Else
' --------------- Affichage du formulaire ---------------
' si le visiteur n'a pas encore voté
%>
<table width="302" align="center">
<form name="poll" action="vote.asp?voir=true" method="get">
<tr>
<td colspan="3"> <%=VoteQuestion%></td>
</tr>
<% while not RSReponses.EOF
' on boucle sur les réponses, cette fois-ci dans un formulaire
' sous forme de bouton radio
%>
<tr>
<td width="176"><a href='JavaScript:Affiches("../concours/<%=RSReponses("VoteOption")%>.asp")'><%=RSReponses("VoteOption")%></a></td>
<td width="114">
<input type="radio" name="choix" value="<%=RSReponses("VoteOptionID")%>">
</td>
</tr>
<% RSReponses.movenext : wend %>
<tr>
<td colspan="2">
<p align="center"><br>
<input type="submit" value="Voter!" name="submit">
<input type="hidden" name="valide" value="true">
<br>
<a href="vote.asp?voir=true"><font size="2" face="Comic Sans MS, Verdana, Arial">Voir
les résultats</font></a> </p>
</td>
</tr>
</form>
</table>
<div align="center">
<% End if %>
<br>
<a href='JavaScript:VisioAffiche("affiches.asp")'><font size="2" face="Comic Sans MS, Verdana, Arial">Visualiser
les affiches</font></a> <a href='JavaScript:Retour("concours.html")'><font face="Comic Sans MS, Verdana, Arial" size="2"><br>
Retourner sur le site des 10 ans !</font></a></div>
</td>
</tr>
<tr>
<td width="300">&nbsp;</td>
</tr>
</table>
</body>
</html>
[/cpp]
 

dartyduck

Grand Meuble Suprême
c'est quoi ce code [:peur]
j'ai rien dit, je vais encore me faire engueuler :o
 

zeb

Modérateur
Mais non, je t'engueule pas, je gueule, c'est tout. :o

Comme d'hab', dardyduck, si tu trouves ce code horrible, tu es prié de le dire et aussi de dire pourquoi. La critique objective est vivement appréciée :)


edit: rhoooooooo! la vache ! C'est coton : Des tableaux, du VBS et du JS [:peur]
 

zeb

Modérateur
concernant le sujet c'est bien écrit php&mysql&asp
Et non. C'est du html 1.0 :/, du VBS et du JS :/ et de l'ASP.
Pas la moindre trace de PHP.

Quand à ta base, c'est peut-être du MySQL, qu'importe. (Parfois c'est utile de le savoir, le dire ne gâche rien ;)).

Il semblerait que ce soit le fichier VoteBDD.asp qui contienne la mécanique de vote.
 

dartyduck

Grand Meuble Suprême

bah vi, spour ça [:peur]
 

fred1254

Nouveau membre
Bon j'essaie de chercher une réponse mais en vain sad.gif.

je vous envoi le lien de la page concernée :

alors pour info quand on clique sur un seul vote tout marche nikel par contre dès qu'on sélectionne deux ou plusieurs affiches ça fonctionne plus sad.gif. Je suis sur que c'est pas bien compliqué mais je galère depuis 3 jours à chercher et à retourner le code dans tous les sens. je pense que ça passe par une boucle qui répéterait une partie du code, mais quelle boucle utilisée et à quelle endroit la faire débuter et à quel endroit la faire terminer.

Je vous remets la source de la page. Je continue à cherche aussi. Merci

[cpp]
<html>
<head>
<title>Votez pour votre affiche pr&eacute;f&eacute;r&eacute;e</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<script language="JavaScript">
<!--
function Retour (fichier,w,h) {
ff=window.open(fichier,"new","toolbar=no,scrollbars=no,left=340,top=100,resizable=no"); if(ff) { ff.focus();ff.resizeTo(650,570) }
}
//-->
</script>
</head>
<body bgcolor="#b3dc10" text="#000000">
<table width="300" border="0" cellspacing="0" cellpadding="0" height="52">
<tr>
<td width="300" height="32">
<div align="center"><img src="Concours.gif" width="162" height="32"></div>
</td>
</tr>
<tr>
<td width="300" height="20">
<div align="center"><img src="Votez.gif" width="247" height="20"></div>
</td>
</tr>
</table>
<p>
<%@LANGUAGE="VBSCRIPT"%>
</p>
<table width="300" border="0" cellspacing="0" cellpadding="0" height="328">
<tr>
<td width="300" valign="top">
<!--#include file="../../../../db/Connections/VoteBDDMulti.asp" -->
<%
SQL = "SELECT TOP 1 * FROM Questions " & _
"ORDER BY VoteDate DESC"
RSQuestions.open SQL, Conn, 3, 3
' on ne selectionne que le dernier sondage entré (top 1)

VoteID = RSQuestions("VoteID")
' on récupère l'ID du sondage, que l'on placera dans un cookie

VoteQuestion = RSQuestions("VoteQuestion")
' on récupère la question du sondage en cours


' --------------- Validation du formulaire ---------------
' si le formulaire est validé, on prepare la mise à jour de la table...
If Request.QueryString("valide") = "true" then

SQL = "UPDATE Reponses " & _
"SET Compteur = Compteur + 1 " & _
"WHERE VoteOptionID= " & _
Request.QueryString("choix") & ";"

If Int(Request.Cookies("VoteCookie")("VoteID")) <> VoteID then
' si le visiteur n'avait pas encore donné son avis pour ce vote... et on execute...

Conn.Execute SQL
Response.Cookies("VoteCookie").Expires = Now()
' on autorise 1 vote tout les now() + x jours, à définir selon vos besoins
Response.Cookies("VoteCookie")("VoteID") = VoteID
Response.write " Le vote est validé. Merci!"

End if
End if
' ------------ Fin de validation du formulaire -----------




SQL = "SELECT * FROM Reponses " & _
"WHERE VoteID = " & VoteID
set RSReponses = Server.CreateObject("ADODB.Recordset")
RSReponses.Open SQL, Conn, 3, 3
' on extrait les réponses possibles pour ce sondage


Total = 0

While Not RSReponses.EOF
' on récupère le nombre de réponses totales données pour ce sondage
Total = Total + RSReponses("Compteur")
RSReponses.MoveNext
Wend



RSReponses.MoveFirst
' on se replace sur le 1er enregistrement



If Request.QueryString("voir") = "true" OR Request.QueryString("valide") = "true" _
OR cInt(Request.Cookies("VoteCookie")("VoteID")) = VoteID then
' --------------- Affichage des resultats ---------------
' si on a voté, déjà voté, ou demandé les résultats

' protection "Dépassement de capacité" d'un entier
' si l'on affiche les résultats et que personne n'a encore voté

If Total = 0 then
Response.write "Aucun vote !"
Else


' création de la table HTML
%>
<br>
<table width="302">
<tr>
<td colspan="3"> <%=VoteQuestion%> <br>
</td>
</tr>
<% while not RSReponses.EOF
pVotes = (RSReponses("Compteur") / Total) * 100
' pourcentage = (réponses pour la question / total réponses données) * 100
%>
<tr>
<td width="44"><%=RSReponses("VoteOption")%></td>
<td width='14'><img src='/Marches/voteASP/vote.gif' height='5' width='<%=Round(pVotes,0)%>'></td>
<td width="228"><%=Round(pVotes,1)%> %</td>
</tr>
<% RSReponses.movenext : wend
'on boucle sur les réponses en sortant leur désignation
' le pourcentage de vote arrondi et une barre graphique
%>
</table>
<br>
<% Response.write Total & " votes ont été effectués" : End If %>
<% Else
' --------------- Affichage du formulaire ---------------
' si le visiteur n'a pas encore voté
%>
<table width="302" align="center">
<form name="poll" action="voteok.asp?voir=true" method="get">
<tr>
<td colspan="3"> <%=VoteQuestion%> </td>
</tr>
<% while not RSReponses.EOF
' on boucle sur les réponses, cette fois-ci dans un formulaire
' sous forme de cases à cocher
%>
<tr>
<td width="176"><%=RSReponses("VoteOption")%></td>
<td width="114">
<input type="checkbox" name="choix" value="<%=RSReponses("VoteOptionID")%>">
</td>
</tr>
<% RSReponses.movenext : wend %>
<tr>
<td colspan="2">
<p align="center"><br>
<input type="submit" value="Voter!" name="submit">
<input type="hidden" name="valide" value="true">
<br>
<a href="voteok.asp?voir=true">Voir les résultats</a> </p>
</td>
</tr>
</form>
</table>
<div align="center">
<% End if %>
<br>
<a href='JavaScript:Retour("concours.html")'><font face="Comic Sans MS, Verdana, Arial" size="2">Retourner
sur le site des 10 ans !</font></a></div>
</td>
</tr>
<tr>
<td width="300">&nbsp;</td>
</tr>
</table>
</body>
</html>

[/cpp]
 
Vous devez vous inscrire ou vous connecter pour répondre ici.
Derniers messages publiés
Statistiques globales
Discussions
730 098
Messages
6 717 073
Membres
1 586 286
Dernier membre
petitangebleu1977
Partager cette page
Haut