Système de notation par étoiles

Soyez le premier à donner votre avis sur cette source.

Vue 39 465 fois - Téléchargée 3 159 fois

Description

Ce script vous permet de mettre facilement en place un système de notation, comme celui de codes-sources.
Je ne donne ici que la partie Javascript, c'est à vous d'adapter ce script à vos besoins en créant la partie côté serveur.

Source / Exemple :


<html>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">

<head>
<script>
<!-- 
StarOutUrl=		'StarOut.gif';		//image par défaut
StarOverUrl=		'StarOver.gif';		//image d'une étoile sélectionnée
StarBaseId=		'Star';			//id de base des étoiles
NbStar=			10;			//nombre d'étoiles

LgtStarBaseId=StarBaseId.lastIndexOf('');

function NotationSystem() {
	for (i=1;i<NbStar+1;i++) {
		var img			=document.getElementById('Star'+i);
			
		img.onclick		=function() {alert('Vous avez donné la note de '+Name2Nb(this.id)+'.');};
		//Réaction lors du clic sur une étoile
		//Evidemment, il faudrait compléter cette fonction pour la rendre vraiment utile.
		//Par exemple, envoyer la note dans une base de donnée via un XMLHttpRequest.
		
		img.alt			='Donner la note de '+i;
		//Texte au survol
		
		img.src			=StarOutUrl;
		img.onmouseover	=function() {StarOver(this.id);};
		img.onmouseout	=function() {StarOut(this.id);};
	}
}

function StarOver(Star) {
	StarNb=Name2Nb(Star);
	for (i=1;i<(StarNb*1)+1;i++) {
		document.getElementById('Star'+i).src=StarOverUrl;
	}
}

function StarOut(Star) {
	StarNb=Name2Nb(Star);
	for (i=1;i<(StarNb*1)+1;i++) {
		document.getElementById('Star'+i).src=StarOutUrl;
	}
}

function Name2Nb(Star) {
	//Le survol d'une étoile ne nous permet pas de connaître directement son numéro
	//Cette fonction extrait donc ce numéro à partir de l'Id
	StarNb=Star.slice(LgtStarBaseId);
	return(StarNb);
} 
-->
</script>
</head>

<body onload="NotationSystem();">
<!-- 
Vous pouvez mettre un nombre quelconque d'étoiles, veillez juste à mettre à jour la variable NbStar. 
Par défaut, les étoiles sont "éteintes" : si un utilisateur a désectivé JS il ne pourra pas voter mais le script ne plantera pas
-->
<img id="Star1" src="StarOut.gif" /><img id="Star2" src="StarOut.gif" />
<img id="Star3" src="StarOut.gif" /><img id="Star4" src="StarOut.gif" />
<img id="Star5" src="StarOut.gif" /><img id="Star6" src="StarOut.gif" />
<img id="Star7" src="StarOut.gif" /><img id="Star8" src="StarOut.gif" />
<img id="Star9" src="StarOut.gif" /><img id="Star10" src="StarOut.gif" />
</body>

</html>

Conclusion :


Voilà c'est très simple mais ça permettra peut-être à certains de gagner du temps.
Vous pouvez mettre autant d'étoiles que vous voulez.
Testé sur Firefox et sur IE.

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

gradegro
Messages postés
1
Date d'inscription
mardi 10 mars 2009
Statut
Membre
Dernière intervention
24 février 2010

Merci, excellente source, ce que je cherchais.

Merci également à Xenul, je me suis servi de sa source pour mon site.
izzybosse
Messages postés
1
Date d'inscription
lundi 22 juin 2009
Statut
Membre
Dernière intervention
20 février 2010

très bien
chaman35
Messages postés
9
Date d'inscription
mercredi 8 avril 2009
Statut
Membre
Dernière intervention
6 juillet 2009

Salut a tous
dabord merci a toi Scraat c bien sympa ca aide, mais petite question j'ai esseyé d'inclure ce code dans un tableau ce qui donne <td onload="NotationSystem();"> etc...
mais ca marche pas Une solution?
cs_rickyo
Messages postés
1
Date d'inscription
lundi 9 février 2009
Statut
Membre
Dernière intervention
9 février 2009

Bonjour à tous,

J'ai lu tous vos script et je les ai essayés, car je voudrais en placer un sur mon site.
Je suis novice, et je souhaiterais savoir si on peut inclure une notification ou alerte email afin de connaitre directement le résultat du vote ? Merci, si quelqu'un pourrait m'aider ?
Xenul
Messages postés
35
Date d'inscription
mardi 8 août 2006
Statut
Membre
Dernière intervention
28 octobre 2007

(erf, on ne peut éditer ses commentaires :/)

C'est bon, j'ai trouvé :D

J'ai créé un formulaire, et modifié les valeurs des champs lors du img.onclick.

Demo & source ici : http://isen-airsoft.naedev.org/Perso/Notation_Etoile/

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.

Du même auteur (Scraat)