Simples calculs javascript [Résolu/Fermé]

Signaler
Messages postés
34
Date d'inscription
samedi 23 avril 2011
Statut
Membre
Dernière intervention
16 juin 2012
-
 simon -
Bonsoir,


Je (novice en js) tente de mettre en ligne sur mon site un simple formulaire de calculs pour que mes clients puissent obtenir une estimation immédiate de leur devis.

J'ai tant bien que mal réussi la première partie de calcul, pas facile lorsque l'on débute mais je bute sur une "condition", j'espère utiliser le bon terme.

En fait je souhaiterais que r soit égal à (n*s) si (n/d) <= à 2500, mais si (n/d) > 2500 alors r= (n*(s+0.015)).

Je vous mets ou j'en suis dans le script, si vous pouviez m'aiguiller pour réaliser ce calcul je vous en serais reconnaissant car mes recherches sur la toile sont jusque là infructueuses.
J'imagine que je dois définir une variable r: condition 1 || condition 2 et puis ensuite partir sur if else, mais je n ai aucune idée de comment et ou l ecrire.

Merci

<script language="javascript">
function calcul(total, nombre, deadline, styletexte)
{
x=document.getElementById(nombre);n=(1*x.value); // le nombre de mots
x=document.getElementById(styletexte);s=(1*x.value); //le style de texte
x=document.getElementById(deadline);d=(1*x.value); // le délai
r=(n*s); // le calcul
x=document.getElementById(total);x.value=r; // L'affectation
}
</script>





1 réponse

<script type="text/javascript">
function calcul(total, nombre, deadline, styletexte)
{
x=document.getElementById(nombre).value;
x = parseInt(x);
n=(1*x);

x=document.getElementById(styletexte).value;
x = parseInt(x);
s=(1*x);

x=document.getElementById(deadline).value;
x = parseInt(x);
d=(1*x);

r = '';

if (n / d <= 2500) { r = n * s; }

else { r = (n*(s+0.015)); }

x=document.getElementById(total);x.value=r; // L'affectation
}
</script>

http://www.gmoreau.user.fr
4
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 60511 internautes nous ont dit merci ce mois-ci

Messages postés
34
Date d'inscription
samedi 23 avril 2011
Statut
Membre
Dernière intervention
16 juin 2012

Merci tu me sauves. Je galère vraiment en js, va vraiment falloir que je prenne le temps de m'y mettre.
Les 1*x, je me suis cassé la tête à essayer de comprendre aussi, je sors ça d'un tuto en ligne. Je n'en ai aucune idée.
Si je prends le code tel que tu me l'a donné, les calculs ne se font plus. Étrange.
Par contre, en suivant l'écriture de ta condition avec mon premier bout de code ça fonctionne parfaitement.
<script language="javascript">
function calcul(total, nombre, deadline, styletexte)
{
x=document.getElementById(nombre);n=(1*x.value); // le nombre de mots
x=document.getElementById(styletexte);s=(1*x.value); //le style de texte
x=document.getElementById(deadline);d=(1*x.value); // le délai
r = ''; 
if (n / d <= 2500) { r = n * s; } 
else { r = (n*(s+0.015)); } 
x=document.getElementById(total);x.value=r; // On affecte
}
</script>
Utilisateur anonyme
Je suis pas a l'aise aussi avec le JavaScript, mais si sa fonctionne temps mieu :)
Messages postés
34
Date d'inscription
samedi 23 avril 2011
Statut
Membre
Dernière intervention
16 juin 2012

Un grand merci tout de même, je vais enfin pouvoir passer à autre chose pour finir mon site.
Messages postés
34
Date d'inscription
samedi 23 avril 2011
Statut
Membre
Dernière intervention
16 juin 2012

Et juste pour info après avoir demandé à quelqu'un : "1*x." sert à convertir la valeur des champs (chaîne de caractères) en entiers.
good mais on peut mais tous simple document.nom_de_formulaire.nom_de_champ.value