FORUM Tom's Hardware » Programmation » PHP & MySQL & ASP » Votes avec choix et réponses multiples
 

Votes avec choix et réponses multiples

Il y a 334 utilisateurs connus et inconnus. Pour voir la liste des connectés connus, cliquez ici
Ajouter une réponse



 Mot :   Pseudo :  
 
Bas de page
Auteur
 Sujet : Votes avec choix et réponses multiples
 
Plus d'informations

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

My angel Charline (18.07.2007)
Plus d'informations

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


---------------
GLOIRE A :o | Ma config
n00b intergalactique invincible :o
 
Y'a un bug chez BOM :/
zeb
Plus d'informations

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)


---------------
Règlement du forum / Règlement de Programmation / Règlement du Monde de Linux euh, n'y en a pas...
Plus d'informations

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 :  
 

Code :
  1. <html>
  2. <head>
  3. <title>Votez pour votre affiche pr&eacute;f&eacute;r&eacute;e</title>
  4. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
  5. <script language="JavaScript">
  6. <!--
  7. window.onblur = function() {
  8. self.focus()
  9. }
  10. function VisioAffiche (fichier,w,h) {
  11.     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) }
  12. }
  13. function VoteAffiche (fichier,w,h) {
  14.     ff=window.open(fichier,"new","toolbar=no,scrollbars=no,left=340,top=100,resizable=no" ); if(ff) { ff.focus();ff.resizeTo(340,900) }
  15. }
  16. function Retour (fichier,w,h) {
  17.     ff=window.open(fichier,"new","toolbar=no,scrollbars=yes,left=340,top=100,resizable=no" ); if(ff) { ff.focus();ff.resizeTo(690,590) }
  18. }
  19. function Affiches (fichier,w,h) {
  20.     ff=window.open(fichier,"new","toolbar=no,scrollbars=yes,left=340,top=100,resizable=no" ); if(ff) { ff.focus();ff.resizeTo(800,830) }
  21. }
  22. //-->
  23. </script>
  24. </head>
  25. <body bgcolor="#b3dc10" text="#000000">
  26. <table width="300" border="0" cellspacing="0" cellpadding="0" height="52">
  27.   <tr>
  28.     <td width="300" height="32">
  29.       <div align="center"><img src="Concours.gif" width="162" height="32"></div>
  30.     </td>
  31.   </tr>
  32.   <tr>
  33.     <td width="300" height="20">
  34.       <div align="center"><img src="Votez.gif" width="247" height="20"></div>
  35.     </td>
  36.   </tr>
  37. </table>
  38. <p>
  39.   <%@LANGUAGE="VBSCRIPT"%>
  40. </p>
  41. <table width="300" border="0" cellspacing="0" cellpadding="0" height="328">
  42.   <tr>
  43.     <td width="300" valign="top">
  44.       <!--#include file="../../../../db/Connections/VoteBDD.asp" -->
  45.       <%
  46. SQL = "SELECT TOP 1 * FROM Questions " & _
  47.     "ORDER BY VoteDate DESC"
  48. RSQuestions.open SQL, Conn, 3, 3
  49. ' on ne selectionne que le dernier sondage entré (top 1)
  50. VoteID = RSQuestions("VoteID" )
  51. ' on récupère l'ID du sondage, que l'on placera dans     un cookie
  52. VoteQuestion = RSQuestions("VoteQuestion" )
  53. ' on récupère la question du sondage en cours
  54. ' --------------- Validation du formulaire ---------------
  55. ' si le formulaire est validé, on prepare la mise à jour de la table...
  56. If Request.QueryString("valide" ) = "true" then
  57.      SQL = "UPDATE Reponses " & _
  58.      "SET Compteur = Compteur + 1 " & _
  59.      "WHERE VoteOptionID= " & _
  60.      Request.QueryString("choix" ) & ";"
  61. If Int(Request.Cookies("VoteCookie" )("VoteID" )) <> VoteID then
  62. ' si le visiteur n'avait pas encore donné son avis pour ce vote... et on execute...
  63.       Conn.Execute SQL
  64.    Response.Cookies("VoteCookie" ).Expires = Now()
  65.    ' on autorise 1 vote tout les now() + x jours, à définir selon vos besoins
  66.    Response.Cookies("VoteCookie" )("VoteID" ) = VoteID
  67.    Response.write " Le vote est validé. Merci!"
  68.  
  69. End if
  70. End if
  71. ' ------------ Fin de validation du formulaire -----------
  72. SQL = "SELECT * FROM Reponses " & _
  73.        "WHERE VoteID = " & VoteID
  74. set RSReponses = Server.CreateObject("ADODB.Recordset" )
  75. RSReponses.Open SQL, Conn, 3, 3
  76. ' on extrait les réponses possibles pour ce sondage
  77. Total = 0
  78. While Not RSReponses.EOF
  79. ' on récupère le nombre de réponses totales données pour ce sondage
  80.    Total = Total +  RSReponses("Compteur" )
  81.    RSReponses.MoveNext
  82. Wend
  83. RSReponses.MoveFirst
  84. ' on se replace sur le 1er enregistrement
  85. If Request.QueryString("voir" ) = "true" OR Request.QueryString("valide" ) = "true" _
  86.    OR cInt(Request.Cookies("VoteCookie" )("VoteID" )) = VoteID then
  87.     ' --------------- Affichage des resultats ---------------
  88.     ' si on a voté, déjà voté, ou demandé les résultats
  89.     ' protection "Dépassement de capacité" d'un entier
  90.     ' si l'on affiche les résultats et que personne n'a encore voté
  91.     If Total = 0 then
  92.     Response.write "Aucun vote !"
  93.     Else
  94.      ' création de la table HTML
  95.     %>
  96.      <br>
  97.       <table width="302">
  98.         <tr>
  99.           <td colspan="3"> <%=VoteQuestion%> <br>
  100.           </td>
  101.         </tr>
  102.         <% while not RSReponses.EOF
  103.     pVotes = (RSReponses("Compteur" ) / Total) * 100
  104.     ' pourcentage = (réponses pour la question / total réponses données) * 100
  105.     %>
  106.         <tr>
  107.           <td width="44"><a href='JavaScript:Affiches("../concours/<%=RSReponses("VoteOption" )%>.asp" )'><%=RSReponses("VoteOption" )%></a></td>
  108.           <td width='14'><img src='/Marches/voteASP/vote.gif' height='5' width='<%=Round(pVotes,0)%>'></td>
  109.           <td width="228"><%=Round(pVotes,1)%> %</td>
  110.         </tr>
  111.         <% RSReponses.movenext : wend
  112.     'on boucle sur les réponses en sortant leur désignation
  113.     ' le pourcentage de vote arrondi et une barre graphique
  114.     %>
  115.       </table>
  116.       <br>
  117.       <% Response.write Total & " votes ont été effectués" : End If %>
  118.       <br>
  119.       <font face="Comic Sans MS, Verdana, Arial" size="2"><a href='javascript:VoteAffiche("vote.asp" )'>Retourner
  120.       aux votes</a></font> <br>
  121.       <% Else 
  122.     ' --------------- Affichage du formulaire ---------------
  123.     ' si le visiteur n'a pas encore voté
  124. %>
  125.       <table width="302" align="center">
  126.         <form name="poll" action="vote.asp?voir=true" method="get">
  127.           <tr>
  128.             <td colspan="3"> <%=VoteQuestion%></td>
  129.           </tr>
  130.           <% while not RSReponses.EOF
  131.     ' on boucle sur les réponses, cette fois-ci dans un formulaire
  132.     ' sous forme de bouton radio
  133.     %>
  134.           <tr>
  135.             <td width="176"><a href='JavaScript:Affiches("../concours/<%=RSReponses("VoteOption" )%>.asp" )'><%=RSReponses("VoteOption" )%></a></td>
  136.             <td width="114">
  137.               <input type="radio" name="choix" value="<%=RSReponses("VoteOptionID" )%>">
  138.             </td>
  139.           </tr>
  140.           <% RSReponses.movenext : wend %>
  141.           <tr>
  142.             <td colspan="2">
  143.               <p align="center"><br>
  144.                 <input type="submit" value="Voter!" name="submit">
  145.                 <input type="hidden" name="valide" value="true">
  146.                 <br>
  147.                 <a href="vote.asp?voir=true"><font size="2" face="Comic Sans MS, Verdana, Arial">Voir
  148.                 les résultats</font></a> </p>
  149.             </td>
  150.           </tr>
  151.         </form>
  152.       </table>
  153.       <div align="center">
  154.         <% End if %>
  155.         <br>
  156.         <a href='JavaScript:VisioAffiche("affiches.asp" )'><font size="2" face="Comic Sans MS, Verdana, Arial">Visualiser
  157.         les affiches</font></a> <a href='JavaScript:Retour("concours.html" )'><font face="Comic Sans MS, Verdana, Arial" size="2"><br>
  158.         Retourner sur le site des 10 ans !</font></a></div>
  159.     </td>
  160.   </tr>
  161.   <tr>
  162.     <td width="300">&nbsp;</td>
  163.   </tr>
  164. </table>
  165. </body>
  166. </html>

My angel Charline (18.07.2007)
Plus d'informations

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


---------------
GLOIRE A :o | Ma config
n00b intergalactique invincible :o
 
Y'a un bug chez BOM :/
zeb
Plus d'informations

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]

Message cité 1 fois
Message édité par zeb le 23-04-2008 à 16:10:06

---------------
Règlement du forum / Règlement de Programmation / Règlement du Monde de Linux euh, n'y en a pas...
zeb
Plus d'informations

Citation :

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.


---------------
Règlement du forum / Règlement de Programmation / Règlement du Monde de Linux euh, n'y en a pas...
My angel Charline (18.07.2007)
Plus d'informations

zeb a écrit :

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]


bah vi, spour ça [:peur]


---------------
GLOIRE A :o | Ma config
n00b intergalactique invincible :o
 
Y'a un bug chez BOM :/
Plus d'informations

Bon j'essaie de chercher une réponse mais en vain sad.gif.
 
je vous envoi le lien de la page concernée : http://www.sydetom66.com/minisite/ [...] voteok.asp
 
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
 

Code :
  1. <html>
  2. <head>
  3. <title>Votez pour votre affiche pr&eacute;f&eacute;r&eacute;e</title>
  4. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
  5. <script language="JavaScript">
  6. <!--
  7. function Retour (fichier,w,h) {
  8.     ff=window.open(fichier,"new","toolbar=no,scrollbars=no,left=340,top=100,resizable=no" ); if(ff) { ff.focus();ff.resizeTo(650,570) }
  9. }
  10. //-->
  11. </script>
  12. </head>
  13. <body bgcolor="#b3dc10" text="#000000">
  14. <table width="300" border="0" cellspacing="0" cellpadding="0" height="52">
  15.   <tr>
  16.     <td width="300" height="32">
  17.       <div align="center"><img src="Concours.gif" width="162" height="32"></div>
  18.     </td>
  19.   </tr>
  20.   <tr>
  21.     <td width="300" height="20">
  22.       <div align="center"><img src="Votez.gif" width="247" height="20"></div>
  23.     </td>
  24.   </tr>
  25. </table>
  26. <p>
  27.   <%@LANGUAGE="VBSCRIPT"%>
  28. </p>
  29. <table width="300" border="0" cellspacing="0" cellpadding="0" height="328">
  30.   <tr>
  31.     <td width="300" valign="top">
  32.       <!--#include file="../../../../db/Connections/VoteBDDMulti.asp" -->
  33.       <%
  34. SQL = "SELECT TOP 1 * FROM Questions " & _
  35.     "ORDER BY VoteDate DESC"
  36. RSQuestions.open SQL, Conn, 3, 3
  37. ' on ne selectionne que le dernier sondage entré (top 1)
  38. VoteID = RSQuestions("VoteID" )
  39. ' on récupère l'ID du sondage, que l'on placera dans     un cookie
  40. VoteQuestion = RSQuestions("VoteQuestion" )
  41. ' on récupère la question du sondage en cours
  42. ' --------------- Validation du formulaire ---------------
  43. ' si le formulaire est validé, on prepare la mise à jour de la table...
  44. If Request.QueryString("valide" ) = "true" then
  45.         SQL = "UPDATE Reponses " & _
  46.          "SET Compteur = Compteur + 1 " & _
  47.          "WHERE VoteOptionID= " & _
  48.          Request.QueryString("choix" ) & ";"
  49. If Int(Request.Cookies("VoteCookie" )("VoteID" )) <> VoteID then
  50. ' si le visiteur n'avait pas encore donné son avis pour ce vote... et on execute...
  51.       Conn.Execute SQL
  52.    Response.Cookies("VoteCookie" ).Expires = Now()
  53.    ' on autorise 1 vote tout les now() + x jours, à définir selon vos besoins
  54.    Response.Cookies("VoteCookie" )("VoteID" ) = VoteID
  55.    Response.write " Le vote est validé. Merci!"
  56.  
  57. End if
  58. End if
  59. ' ------------ Fin de validation du formulaire -----------
  60. SQL = "SELECT * FROM Reponses " & _
  61.        "WHERE VoteID = " & VoteID
  62. set RSReponses = Server.CreateObject("ADODB.Recordset" )
  63. RSReponses.Open SQL, Conn, 3, 3
  64. ' on extrait les réponses possibles pour ce sondage
  65. Total = 0
  66. While Not RSReponses.EOF
  67. ' on récupère le nombre de réponses totales données pour ce sondage
  68.    Total = Total +  RSReponses("Compteur" )
  69.    RSReponses.MoveNext
  70. Wend
  71. RSReponses.MoveFirst
  72. ' on se replace sur le 1er enregistrement
  73. If Request.QueryString("voir" ) = "true" OR Request.QueryString("valide" ) = "true" _
  74.    OR cInt(Request.Cookies("VoteCookie" )("VoteID" )) = VoteID then
  75.     ' --------------- Affichage des resultats ---------------
  76.     ' si on a voté, déjà voté, ou demandé les résultats
  77.     ' protection "Dépassement de capacité" d'un entier
  78.     ' si l'on affiche les résultats et que personne n'a encore voté
  79.     If Total = 0 then
  80.     Response.write "Aucun vote !"
  81.     Else
  82.      ' création de la table HTML
  83.     %>
  84.       <br>
  85.       <table width="302">
  86.         <tr>
  87.           <td colspan="3"> <%=VoteQuestion%> <br>
  88.           </td>
  89.         </tr>
  90.         <% while not RSReponses.EOF
  91.     pVotes = (RSReponses("Compteur" ) / Total) * 100
  92.     ' pourcentage = (réponses pour la question / total réponses données) * 100
  93.     %>
  94.         <tr>
  95.           <td width="44"><%=RSReponses("VoteOption" )%></td>
  96.           <td width='14'><img src='/Marches/voteASP/vote.gif' height='5' width='<%=Round(pVotes,0)%>'></td>
  97.           <td width="228"><%=Round(pVotes,1)%> %</td>
  98.         </tr>
  99.         <% RSReponses.movenext : wend
  100.     'on boucle sur les réponses en sortant leur désignation
  101.     ' le pourcentage de vote arrondi et une barre graphique
  102.     %>
  103.       </table>
  104.       <br>
  105.       <% Response.write Total & " votes ont été effectués" : End If %>
  106.       <% Else 
  107.     ' --------------- Affichage du formulaire ---------------
  108.     ' si le visiteur n'a pas encore voté
  109. %>
  110.       <table width="302" align="center">
  111.         <form name="poll" action="voteok.asp?voir=true" method="get">
  112.           <tr>
  113.             <td colspan="3"> <%=VoteQuestion%> </td>
  114.           </tr>
  115.           <% while not RSReponses.EOF
  116.     ' on boucle sur les réponses, cette fois-ci dans un formulaire
  117.     ' sous forme de cases à cocher
  118.     %>
  119.           <tr>
  120.             <td width="176"><%=RSReponses("VoteOption" )%></td>
  121.             <td width="114">
  122.               <input type="checkbox" name="choix" value="<%=RSReponses("VoteOptionID" )%>">
  123.             </td>
  124.           </tr>
  125.           <% RSReponses.movenext : wend %>
  126.           <tr>
  127.             <td colspan="2">
  128.               <p align="center"><br>
  129.                 <input type="submit" value="Voter!" name="submit">
  130.                 <input type="hidden" name="valide" value="true">
  131.                 <br>
  132.                 <a href="voteok.asp?voir=true">Voir les résultats</a> </p>
  133.             </td>
  134.           </tr>
  135.         </form>
  136.       </table>
  137.       <div align="center">
  138.         <% End if %>
  139.         <br>
  140.         <a href='JavaScript:Retour("concours.html" )'><font face="Comic Sans MS, Verdana, Arial" size="2">Retourner
  141.         sur le site des 10 ans !</font></a></div>
  142.     </td>
  143.   </tr>
  144.   <tr>
  145.     <td width="300">&nbsp;</td>
  146.   </tr>
  147. </table>
  148. </body>
  149. </html>


Aller à :
Ajouter une réponse
  FORUM Tom's Hardware » Programmation » PHP & MySQL & ASP » Votes avec choix et réponses multiples
 

Annonces Google
Publicité