Problème de formulaire de calcul en ligne

Signaler
Messages postés
5
Date d'inscription
jeudi 1 novembre 2007
Statut
Membre
Dernière intervention
17 novembre 2007
-
Messages postés
5
Date d'inscription
jeudi 1 novembre 2007
Statut
Membre
Dernière intervention
17 novembre 2007
-
Bonjour,
J’ai une page web ou des données sont entrées par l’utilisateur en ligne

Qui ressemble à ceci :

-------------------------------------------------------
<SCRIPT type=text/javascript>
function calcule_prix()
{

ilargeurbat = document.getElementById("ilargeurbat").value;
ilongueurbat = document.getElementById("ilongueurbat").value;
ihauteurbat = document.getElementById("ihauteurbat").value;

document.getElementById("prix").value = ((ilargeurbat) * (ilongueurbat) * (ihauteurbat))-(ihauteurbat);
}
Dimensions,

----

,

----

&nbsp;,
&nbsp;,

----

Largeur,

<SELECT id=ilargeurbat onchange=javascript:calcule_prix(); name="ilargeurbat_">
<option value="0">Imp. / Mét.</option>
<option value="24">24' ---- 07,32m</option>
<option value="30">30' ---- 09,14m</option>
<option value="36">36' ---- 10,97m</option>
<option value="39">39' ---- 11,89m</option>
<option value="48">48' ---- 14,63m</option>
<option value="60">60' ---- 18,29m</option>
<option value="72">72' ---- 21,95m</option>
<option value="78">78' ---- 23,77m</option>
<option value="90">90' ---- 27,43m</option>
<option value="99">99' ---- 30,17m</option>
</select>

,

----

Longueur,

<SELECT id=ilongueurbat onchange=javascript:calcule_prix(); name="ilongueurbat_">
<option value="N.D.">Imp. / Mét.</option>
<option value="12">12' ----03,66m</option>
<option value="24">24' ----07,32m</option>
<option value="36">36' ----10,97m</option>
<option value="48">48' ----14,63m</option>
<option value="60">60' ----18,29m</option>
<option value="72">72' ----21,95m</option>
<option value="84">84' ----25,60m</option>
<option value="96">96' ----29,26m</option>
<option value="108">108'---32,92m</option>
<option value="120">120'---36,92m</option>
<option value="132">132'---40,24m</option>
<option value="144">144'---43,89m</option>
<option value="156">156'---47,55m</option>
<option value="168">168'---51,21m</option>
<option value="180">180'---54,85m</option>
<option value="192">192'---58,52m</option>
<option value="204">204'---62,18m</option>
<option value="Autres dimensions">Autres dimensions</option>
</select>
,

----

Hauteur,

<SELECT id=ihauteurbat onchange=javascript:calcule_prix(); name="ihauteurbat_">
<option value="N.D.">Imp. / Mét.</option>
<option value="8">08' ----2,44m</option>
<option value="10">10' ----3,05m</option>
<option value="12">12' ----3,66m</option>
<option value="14">14' ----4,28m</option>
<option value="16">16' ----4,88m</option>
<option value="18">18' ----5,49m</option>
<option value="20">20' ----6,10m</option>
<option value="22">22' ----6,71m</option>
<option value="24">24' ----7,32m</option>
</select>













<center>

Prix :

J’aimerais que , une fois que la valeur prix a été calculée, qu’elle aille trouver dans par exemple 5 champs cachés sur le formulaire, celui qui a la même valeur que le prix calculé et qu’il l’affiche dans la page dans un champ nommé « prix 2 » par exemple.

En bref, je veux placer 5 champs cachés dans cette page, et je veux qu’une fois que la fonction javascript ait calculé le prix, qu’il y ait une autre fonction qui prenne la valeur de ce prix, qu’elle recherche parmi les 5 champs cachés celui qui a la même valeur et qu’il affiche dans un champ « prix 2 » non caché le résultat de cette valeur (une option reliée au prix).

merci de votre aide précieuse

7 réponses

Messages postés
3426
Date d'inscription
lundi 26 décembre 2005
Statut
Membre
Dernière intervention
14 janvier 2011
14
Bonjour,
Je ne suis pas sur de tout avoir compris mais à la lecture de ta source je doute que la fonction calcul_prix fonctionne.
Je te propose pour analyse celle ci
//---------------------
function calcule_prix(){
var O_Select;

O_Select = document.getElementById("ilargeurbat");
var iLarg = parseFloat(O_Select.options[O_Select.selectedIndex].value);
//ilargeurbat = document.getElementById("ilargeurbat").value;

O_Select = document.getElementById("ilongueurbat");
var iLong = parseFloat(O_Select.options[O_Select.selectedIndex].value);
//ilongueurbat = document.getElementById("ilongueurbat").value;

O_Select = document.getElementById("ihauteurbat");
var iHaut = parseFloat(O_Select.options[O_Select.selectedIndex].value);
//ihauteurbat = document.getElementById("ihauteurbat").value;

var iPrix =((iLarg) * (iLong) * (iHaut))-(iHaut);
document.getElementById("prix").value = iPrix.toFixed(2); // formatte 2 chiffres après la virgule
//document.getElementById("prix").value = ((ilargeurbat) * (ilongueurbat) * (ihauteurbat)) - (ihauteurbat);
}
pour le reste ...



;0)
Messages postés
5
Date d'inscription
jeudi 1 novembre 2007
Statut
Membre
Dernière intervention
17 novembre 2007

en fait, l'ordi calcul le prix via le script. Ensuite, une fois le calcul du prix effectué, l'ordi doit aller chercher parmi 5 champs cachés, celui qui est égal au prix calculé. Une fois le champ caché trouvé, l'ordi doit prendre la valeur du champ caché trouvé et l'afficher à l'écran.

les 5 champs cachés ont les valeurs suivantes:

champ 1--- Nom: valeur_a valeur: 5000
champ 2--- Nom: valeur_b valeur: 6000
champ 3--- Nom: valeur_c valeur: 7000
champ 4--- Nom: valeur_d valeur: 8000
champ 5--- Nom: valeur_e valeur: 9000

je ne suis pas encore assez ferré en javascript pour réaliser ce bout de scipt.

merci !
-Fred

<!-- / message -->
Messages postés
5
Date d'inscription
jeudi 1 novembre 2007
Statut
Membre
Dernière intervention
17 novembre 2007

Est-ce qu'un champ caché peut avoir pour nom une valeur numérique?  exemple:  123456 .  Si oui, je nommerais chaque champ caché par un prix.  Ainsi le but serait de trouver le prix calculé par le script parmi les noms des champs cachés et ensuite une fois le prix trouvé qui sont en fait les noms des champs cachés, aller chercher la valeur et l'afficher.
Messages postés
3426
Date d'inscription
lundi 26 décembre 2005
Statut
Membre
Dernière intervention
14 janvier 2011
14
Bonjour,




Est-ce qu'un champ caché peut avoir pour nom une valeur numérique?



A priori pas de problème bien que pas très explicite.

Dans ce cas il te suffit de récuper la somme, de la convertir en string, de tester si l'objet correspondant existe et si oui récupérer sa value.
Il te faut donc mettre un(e) ID à tes champs cachés pour pouvoir savoir si il existe grace à

var O_Ref = "" + parseInt( Prix);
var Obj = document.getElementById( O_Ref);
if( Obj)
  var Valeur = Obj.value;

Un truc dans ce goût la...


;0)
Messages postés
5
Date d'inscription
jeudi 1 novembre 2007
Statut
Membre
Dernière intervention
17 novembre 2007

est-ce que je pourrais avoir un exemple svp.

par exemple j'ai mes 3 zones de liste déroulantes dans le formulaire, soit "largeur", "longueur" et "hauteur".  Je choisis les valeurs de ces 3 zones déroulantes, par exemple 24 pour la largeur, 12 pour la longueur et 8 pour la hauteur.

ainsi, lorsque les 3 valeurs sont choisies, la fonction calcule prix a calculé la valeur affichée en bas.  Jusque là tout va bien.

Par la suite ca me prendrait un script qui va dans les champs cachés du formulaire et qui trouve la valeur qui a été calculée par la fonction calcule prix, parmi tous les champs cachés.  Dans ce cas-ci ca serait 2296.

le script doit aller chercher le champ caché nommé 2296 et prendre sa valeur et l'afficher n'importe ou dans le formulaire, dans un champ qui attend cette valeur. Dans mon cas, le champ nommé 2296 aurait la valeur 5000.

Serait-il possible de me faire un petit exemple que je pourrais ensuite travailler dessus et l'intégrer à mon formulaire SVP. 

Merci, cela me serait d'une aide précieuse.
En ayant un exemple complet, je pourrais comprendre tout le déroulement des opérations et ensuite avoir une base que je pourrais travailler à intégrer.

:)
Messages postés
3426
Date d'inscription
lundi 26 décembre 2005
Statut
Membre
Dernière intervention
14 janvier 2011
14
Bonjour,
le petit exemple sans more comment...
<html>
<head>
<script type= "text/javascript">
//----------------------------
function Affiche_Result( ref_){
  var O_Dest = document.getElementById( 'I_RESULT');
  var O_Ref  = "I_" + parseInt( ref_);
  var Obj = document.getElementById( O_Ref);
  var Valeur ="....................";
  if( Obj){
    Valeur = Obj.value;
  }
  O_Dest.value = Valeur;
}
//---------------------
function calcule_prix(){
  var O_Select;
  O_Select = document.getElementById("S_LARGEUR");
  var iLarg = parseFloat(O_Select.options[O_Select.selectedIndex].value);
  O_Select = document.getElementById("S_LONGUEUR");
  var iLong = parseFloat(O_Select.options[O_Select.selectedIndex].value);
  O_Select = document.getElementById("S_HAUTEUER");
  var iHaut = parseFloat(O_Select.options[O_Select.selectedIndex].value);
  var iPrix =((iLarg) * (iLong) * (iHaut))-(iHaut);
  document.getElementById("I_PRIX").value = iPrix.toFixed(2);
  Affiche_Result( iPrix);
}
</script>
</head>

<!-- -->

<select id ="S_LARGEUR"  name="S_LARGEUR" onchange ="calcule_prix();">
<option value="0" selected>Imp. / Mét.</option>
<option value="24">24' ---- 07,32m</option>
<option value="30">30' ---- 09,14m</option>
<option value="36">36' ---- 10,97m</option>
</select>

<select id ="S_LONGUEUR" name="S_LONGUEUR" onchange="calcule_prix();">
<option value="0" selected>Imp. / Mét.</option>
<option value="12">12' ----03,66m</option>
<option value="24">24' ----07,32m</option>
<option value="36">36' ----10,97m</option>
</select>

<select id ="S_HAUTEUER" name="S_HAUTEUER" onchange="calcule_prix();">
<option value="0" selected>Imp. / Mét.</option>
<option value="8">08' ----2,44m</option>
<option value="10">10' ----3,05m</option>
<option value="12">12' ----3,66m</option>
</select>

Prix :

Resultat:

</html>

à toi de jouer...


;0)
Messages postés
5
Date d'inscription
jeudi 1 novembre 2007
Statut
Membre
Dernière intervention
17 novembre 2007

merci l'ami :)
j'apprécie ton aide le bon samaritain.
avec ton exemple, je vais faire des tests avec mon formlaire et voir tout le fonctionnement, pour comprendre tout ca.

Salutations !
je te reviens avec ca l'expert, mais tu as fait pas mal.  Je ne voulais pas juste avoir le code, je voulais le comprendre aussi.  Avec ca, je suis sur bonne piste pour expérimenter le comportement de mon formulaire.

-fred