Formulaire avec calcul automatique

Lucalivier Messages postés 4 Date d'inscription dimanche 28 novembre 2010 Statut Membre Dernière intervention 2 décembre 2010 - 28 nov. 2010 à 12:13
PetoleTeam Messages postés 3426 Date d'inscription lundi 26 décembre 2005 Statut Membre Dernière intervention 14 janvier 2011 - 5 déc. 2010 à 09:40
Bonjour je suis un petit nouveau et j'utilise joomla. J'essaie d'aider un pot à créer un formulaire du type select avec calcul automatique d'un systéme de points.
exemple :
plusieurs choix de couleur : rouge, vert,blanc etc
<SELECT>
<OPTION VALUE= "rouge">ROUGE</OPTION>
<OPTION VALUE="vert">VERT</OPTION>
<OPTION VALUE="blanc">BLANC</OPTION>
</select>

J'aimerais que lorsque l'internaute choisi une couleur il y ait une case à coté avec une valeur correspondante
exemple : Rouge 1000pts ou vert 2000pts

deuxieme IDEM avec plusieurs choix de forme : rond,triangle, carré
avec rond= 1000pts, triangle= 2000pts, carré=3000pts

Au final j'aimerais avoir un calcul automatique de la premiere et de la deuxiéme valeur

exemple final
la personne choisi rouge ----> 1000 pts
la personne choisi triangle--> 2000 pts

calcul automatique = le résultat est : 3000 pts

En espérant que quelqu un pourra m'aider ! cordialement lucalive

8 réponses

ChasseurDeChimeres Messages postés 292 Date d'inscription mercredi 7 novembre 2007 Statut Membre Dernière intervention 15 janvier 2013 3
28 nov. 2010 à 13:54
Salut;
Le mieux serait de jouer sur l'attribut css "display" (block/none) de divs contenant les messages que tu souhaites faire apparaitre.
Pour ça il faut récupérer la valeur du champs sélectionné en lançant une fonction sur l'événement "onchange" de ta liste puis choisir, à l'aide d'un switch, quelle div tu vas faire apparaitre :
switch(document.getElementById('id_liste').options[document.getElementById('id_liste').selectedIndex].value) {
  case "vert" :
   document.getElementById('div_verte').style.display = "block";
  case "rouge" :
   document.getElementById('div_rouge').style.display = "block";
}

Après tu pourras faire ton addition toujours en récupérant la valeur de ces champs et en la verifiant toujours dans un switch:
var total = 0;
switch(document.getElementById('id_liste').options[document.getElementById('id_liste').selectedIndex].value) {
  case "vert" :
   total += 2000;
  case "rouge" :
   total += 1000;
}
switch(document.getElementById('id_liste2').options[document.getElementById('id_liste2').selectedIndex].value) {
  case "triangle" :
   total += 2000;
  case "carre" :
   total += 1000;
}


N'hésite pas à demander plus de précisions.
0
Rejoignez-nous