11548 sujets

JavaScript, DOM et API Web HTML5

Bonjour,

Je suis entrain de réaliser une page concours (photos) sur mon site, avec un système "d'étoiles". J'arrive a voter, afficher la moyenne, insérer le vote dans ma bdd quand il y a un seul vote a faire.

Mon problème:

J'ai plusieurs votes a faire sur la même page, ma boucle php m'affiche (mon image + le vote), le problème est que ma fonction est unique, donc la valeur de mes votes ne fonctionnent correctement que pour mon premier élément.

Si j'essaye de voter sur la 2 ou 3ième photos, la valeur sera toujours attribué a ma première photo.


Mon javascript + mon php

// Script JS POUR LES VOTES
echo '
<script type=\'text/javascript\'>
var done=false
var pic = new Array();
pic[0]=new Image();
pic[0].src="includes/concours/star2.png";
pic[1]=new Image();
pic[1].src="includes/concours/star.png";
var bareme = new Array("vraiment nul!","pas terrible! "," sympa !"," super !","exellent!") 
 
function rate(level){
 if (done){return false;}
  for(i=1;i<6;i++){ document.getElementById(\'_\'+i).src=(level<i)?pic[0].src:pic[1].src;
  document.getElementById(\'vote\').innerHTML="Votre vote : "+level+" &eacute;toile(s)   "+bareme[level-1]+"" 
  document.getElementById(\'HiddenVote\').value=level;
  }
}      
</script>';  


  // Affichage concours en cours affichage + vote
  echo '<p style="text-align: center;">Concours du moi de juin, les votes sont ouverts:</p>';
  $sql = 'SELECT C.idConcoursPhotos, C.photosConcours, C.nomConcoursPhotos, V.parentConcours, avg(voteConcours) ascore 
  						FROM t_concours_photos C join t_concours V
  						on C.idConcoursPhotos = V.parentConcours
  						group by V.parentConcours';
  $result = mysql_query($sql); 
  $compteur = 0;
  while($row = mysql_fetch_array($result)){ 						  
    echo '<p>
          <form style="text-align: center;" action="includes/concours/insert_concours.php" method="post">
            <label><img src="includes/concours/'.$row['photosConcours'].'" alt="" width="200px" /></label><br />          
            <input type="hidden" name="id" value="'.$row['idConcoursPhotos'].'" />   
              <img src="includes/concours/star2.png" id=\'_1\' onclick="valider()"  onmouseover="rate(1)" />
              <img src="includes/concours/star2.png" id=\'_2\' onclick="valider()"  onmouseover="rate(2)" />
              <img src="includes/concours/star2.png" id=\'_3\' onclick="valider()"  onmouseover="rate(3)" />
              <img src="includes/concours/star2.png" id=\'_4\' onclick="valider()"  onmouseover="rate(4)" />
              <img src="includes/concours/star2.png" id=\'_5\' onclick="valider()"  onmouseover="rate(5)" /> 
            <div id="vote"></div> 
            <input type="hidden" id="HiddenVote" name="note" onchange="rate(level);" value=""/>
            <input type="submit" name="send" value="Voter" onClick="this.form.submit()">
          </form>
          </p>'; 
  $compteur++;          
  } // fermeture while


http://img59.imageshack.us/img59/180/vote2x.png