Page 1 sur 1

Cacul en JS

Posté : 01 déc. 2020, 12:58
par Alain17139
Bonjour,

je cherche à réaliser un calculateur de volume dans Wordpress.

Voir l'exemple qui marche sur mon site : https://adopt-un-box.la-rochelle-web.fr ... ormulaire/

Le problème : cet page calcule bien le volume nécessaire pour les 100 premiers objets. Mais le calcul, réalisé à partir d'un plugins sans doute "bridé", ne fonctionne pas pour les objets de 100 à 139 (il y a 139 objets en tout).

Le principe : l'utilisateur entre le nombre (Ni)de chaque objet présenté qu'il souhaite stocker dans un box.

Chaque objet a un volume défini et enregistré dans un champs input non visible (Vi)

Une fonction js appelée "Somme" doit :

- calculer le volume global appelé "total". Sous forme mathématique : total = somme(Ni x Vi)

- afficher les résultat dans l'input "total"

Je découvre le javascript et j'ai "bricolé" la fonction suivante fonction qui ne marche pas.

Tout d'abord le code HTML, puis le script js :

<input type="number" id="number-1"/><input type="number" name="volume-1"/><br/>
<input type="number" id="number-2"/><input type="number" name="volume-2"/><br/>
...
<input type="number" id="number-139"/><input type="number" name="volume-139"/><br/>
<input type="number" id="total"/>

<script type="text/javascript">
function somme() {
"use strict";
var sommeRes = 0, i, NbObjets = 139;

for (i = 1; i <= NbObjets; i += 1) {
sommeRes += parseFloat(document.getElementById("number-" + i).value) * parseFloat(document.getElementById("volume-" + i).value);
}

// Si la sommeRes n’est pas définie on ne l’affiche pas.
if (isNaN(sommeRes)) {
sommeRes = "";
}
document.getElementById("total").value = sommeRes;
}

window.onload = function () {
"use strict";

document.getElementById("number-1").onchange = function () {
somme();
};
document.getElementById("number-2").onchange = function () {
somme();
};
.....

document.getElementById("number-139").onchange = function () {
somme();
};
};
</script>

J'ai besoin de votre aide !

Quelqu'un de plus doué que moi peut-il m'expliquer pourquoi cette fonction ne marche SVP ?

Quel serait le code corrigé qui fonctionne SVP ?



Merci beaucoup !

Alain

Re: Cacul en JS

Posté : 01 déc. 2020, 14:26
par webmaster
Bonjour,

J'identifie un probleme sur les volume
Il n'y a pas de id="volume-XX" mais un name
Le getElementById ne peut pas retourner de valeur...

Ca doit être indiqué dans la console du navigateur d'ailleurs.

Re: Cacul en JS

Posté : 01 déc. 2020, 19:29
par Alain17139
Bonsoir,

merci pour ton aide précieuse.

On doit s'approcher de la bonne solution.

Toutefois, j'ai corrigé le code html mais rien ne s'affiche dans le champ total.

Une idée ?


(PS : je ne connais le js comme tu peux le constater)

Merci !
Alain

Re: Cacul en JS

Posté : 02 déc. 2020, 09:37
par webmaster
Ok, regarde ce qui est affiché dans la console

Voici un tuto pour tout comprendre sur cet outil indispensable
https://www.toutjavascript.com/savoir/n ... script.php