11498 sujets

JavaScript, DOM et API Web HTML5

Coucou,

je travaille sur les votes actuellement et je galère complètement. bon je m'explique, j'ai des étoiles (comme sur ce site : http://www.cdiscount.com/electromenager/refrigerateur-congelateur/whirlpool-wbe3321a-nfs-refrigerateur-combine/f-110030901-whirlwbe3321anfs.html#fpRating)
Les étoiles marchent bien mais je voudrais que ça se fasse en AJAX, genre quand je clique sur les petites étoiles en bas, ça affiche direct en ajax sur l'étoile de la moyenne, la moyenne des votes.
Mais dans mon cas, il faudra recharger la page pour voire la moyenne. Donc si quelqu'un avait une idée de comment je pourrais procéder.

MERCI BEAUCOUP Smiley lol
Modifié par tojou (02 Aug 2013 - 13:12)
bonsoir,

il faudrait préciser un peu ce que tu veux faire. Tu souhaites que les internautes puissent voter en sélectionnant un nombre d'étoiles ? si c'est le cas il faut :
- coté client capturer le clic sur l'étoile en question, et envoyer la note vers le serveur (tout à fait possible en ajax)
- coté serveur tu crée un code php par exemple (vote.php) qui reçoit la note, vérifie la validité et vérifie que l'internaute n'a pas voté 36 fois, puis enregistre la note (en moyennant avec les votes précédents) par exemple dans une base mysql
- en retour le code php renvoie la nouvelle note moyennée dont tu te sers pour afficher le nombre d'étoiles correspondant.

personnellement j'utilise le plugin raty pour jquery, que tu peux voir fonctionner sur mon site : les-bons-coins
Bonjour et MERCI pour la réponse.

Oui ok j'ai compris. mais disons que ,
$rate = 4 par exemple.
Et j'ai mes étoiles avec une fonction onClick='test()'
Donc, quand on clique sur les étoiles, ya un fichier php qui traite et qui update la note existante par la nouvelle note;
Mon ajax renvoie la nouvelle note. Mais comment je fais pour remplacer l'ancienne note par cette nouvelle note?

J'ai utilisé replace() en javascript mais ça marche pas. Smiley decu
Coucou,

tu copie juste le contenu des étoiles à afficher dans un autre fichier et tu remplaces l'ancien quand tu traitrera l'ajax.
Genre, dans ton fichier (où il y a l'ajax) tu fait ;

$("#ma_div").html(res);

Et ici , le res c'est le formulaire au complet à remplacer.

Voilà, bonne chance!! Smiley lol
sur mon site (je rappelle que j'utilise jquery et le plugin 'raty'), quand ajax me retourne la nouvelle moyenne, la mise à jour du nombre d'étoiles peut se faire par une fonction fournie par le plugin :
$(#stars).raty({score:...score renvoyé par ajax ...});