Cacul en JS

Pour toutes les discussions javascript, jQuery et autres frameworks
Répondre
Alain17139
Messages : 4
Enregistré le : 01 déc. 2020, 12:57

Cacul en JS

Message par Alain17139 » 01 déc. 2020, 12:58

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

Avatar du membre
webmaster
Administrateur du site
Messages : 563
Enregistré le : 28 févr. 2017, 15:19

Re: Cacul en JS

Message par webmaster » 01 déc. 2020, 14:26

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.
TJS : 25 ans et mon livre Tout JavaScript chez Dunod
https://www.toutjavascript.com/livre/index.php

Alain17139
Messages : 4
Enregistré le : 01 déc. 2020, 12:57

Re: Cacul en JS

Message par Alain17139 » 01 déc. 2020, 19:29

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

Avatar du membre
webmaster
Administrateur du site
Messages : 563
Enregistré le : 28 févr. 2017, 15:19

Re: Cacul en JS

Message par webmaster » 02 déc. 2020, 09:37

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
TJS : 25 ans et mon livre Tout JavaScript chez Dunod
https://www.toutjavascript.com/livre/index.php

Répondre