Bonjour,
j'ai trouver un système d'étoiles qui marche très bien petit erreur tout de même quand il y' a 0 vote, j'ai deux rangée d'etoiles qui apparaisent, voici le code:
l'appel sur la page:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34 <script type="text/javascript"> $(document).ready(function(){ $(".star, .star_hover").hover(function () { // Au survole d'une étoile var id = $(this).attr("id"); // On récupere son id, exemple : star_5 var num = id.split('star_'); // On récupère le numéro de l'id, exemple : 5 for (var i=1;i<=num[1];i++){ // on modifie le css pour chaque étoile situé avant celle survolé par la souris var hover = '#star_'+i; // On crée le nom de l'id dont on va modifier le css, exemple : star_1 $(hover).css("background-position","0 -16px"); } }, function() { // fonction utilisé lorsque la souris se retire de l'étoile survolé (fait la même chose mais remet le background) var id = $(this).attr("id"); var num = id.split('star_'); for (var i=1;i<=num[1];i++){ $('#star_'+i+'[class=star]').css("background-position","0 0"); $('#star_'+i+'[class=star_hover]').css("background-position","0 -32px"); } }); $(".star, .star_hover").live('click', function(){ var id = $(this).attr("id"); var vote = id.split('star_'); $.ajax({ type: "POST", url: "vote_traitement.php", data: 'vote='+vote[1], beforeSend: function(){}, complete: function(){}, success: function(){ alert('Vous avez voté : '+vote[1]); } }); return false; }); }); </script>
VOICI LA source :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28 $vote=$ListeActiviteAmis->getVotesActivite(); for ($i=0;$i<=$vote;$i+=2){ // de 1 à $vote étoiles (+1 si impaire) $body.='<div id="star_'.$i.'" class="star_hover"></div>'; if ($i<$vote){ $body.='<div id="star_'.($i+1).'" class="star_hover"></div>'; }else{ $body.='<div id="star_'.($i+1).'" class="star"></div>'; } } merci. encore :p for ($i;$i<=10;$i+=2){ // de ($vote (+1 si impaire)) $i à 10 $body.='<div id="star_'.$i.'" class="star"></div>'; $body.='<div id="star_'.($i+1).'" class="star"></div>'; } $vote_isset_user = 1; $body.='<br /><div style="float:left;margin-left:15px;">(Notes : '.$vote.'/10)</div>'; if (!$vote){ // Si $vote = false, alors aucune note n'ai prise en compte à l'affichage for ($i=0;$i<=10;$i+=2){ $body.='<div id="star_'.$i.'" class="star"></div>'; $body.='<div id="star_'.($i+1).'" class="star"></div>'; } }
http://www.r-leconte.net/index.php?o...query&Itemid=5
Partager