Simples calculs javascript

Résolu/Fermé
oxymore64 Messages postés 34 Date d'inscription samedi 23 avril 2011 Statut Membre Dernière intervention 16 juin 2012 - 20 sept. 2011 à 03:40
 simon - 12 mars 2014 à 01:34
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
Utilisateur anonyme
20 sept. 2011 à 06:01
d'ailleurs je comprend pas les 1*x ??
0
oxymore64 Messages postés 34 Date d'inscription samedi 23 avril 2011 Statut Membre Dernière intervention 16 juin 2012
20 sept. 2011 à 06:14
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>
0
Utilisateur anonyme
20 sept. 2011 à 06:20
Je suis pas a l'aise aussi avec le JavaScript, mais si sa fonctionne temps mieu :)
0
oxymore64 Messages postés 34 Date d'inscription samedi 23 avril 2011 Statut Membre Dernière intervention 16 juin 2012
20 sept. 2011 à 06:26
Un grand merci tout de même, je vais enfin pouvoir passer à autre chose pour finir mon site.
0
oxymore64 Messages postés 34 Date d'inscription samedi 23 avril 2011 Statut Membre Dernière intervention 16 juin 2012
20 sept. 2011 à 17:12
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.
0