Petit problème de mon programme sur javascript

Fermé
francesco - 15 août 2022 à 18:01
jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 - 15 août 2022 à 18:52

Bonjour tout le monde, si vous savez me dépanner sa serait le top!

alors voila, je dois faire une application de "calculateur de carrelage" et je suis bloquer à cause d'une fonction qui me renvoie "NaN", je m'en doute que c'est à cause de mes calculs mais après des heures de reflexions, je n'ai toujours pas trouver.

merci de votre futur aide !

  <h4>Quelle type de pose ?</h4>
    <label class="typePose"></label>
    <select id="typeDePose" oninput="afficherNombreCarreau(longueurPiece,largeurPiece,longueurCarreau,largeurCarreau,nombreCarreau,typeDePose)" >
        <optgroup label="Pose 1">
            <option value="1">Pose classique</option>
        </optgroup>
        <optgroup label="Pose 2">
            <option value="2">Pose en diagonale</option>
        </optgroup>
        <optgroup label="Pose 3">
            <option value="3">Pose quinconce</option>
        </optgroup>
    </select><br>
    <label class="aDroite">nombre carreaux nécessaires pour la pièce : <span id="nombreCARREAU"></span></label><br>
    
</body>
</html>
----------------------------------------------------------------------------------------------------
function afficherNombreCarreau(
  longueurP,
  largeurP,
  longueurC,
  largeurC,
  nombreC,
  typeDeP
) {
  var total = longueurC * largeurC;
  total = total / nombreC;
  var nombreCARREAU = 0;
  nombreCARREAU = (longueurP * largeurP) / total;

  if (typeDeP == 1) {
    nombreCARREAU = nombreCARREAU * 1.05;
  } else if ((typeDeP = 2)) {
    nombreCARREAU = nombreCARREAU * 1.1;
  } else if ((typeDeP = 3)) {
    nombreCARREAU = nombreCARREAU * 1.15;
  }

  nombreCARREAU = nombreCARREAU.toFixed(0);

  document.getElementById("nombreCARREAU").innerHTML = nombreCARREAU;
}
A voir également:

1 réponse

jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 4 649
Modifié le 15 août 2022 à 18:53

Bonjour,

 oninput="afficherNombreCarreau(longueurPiece,largeurPiece,longueurCarreau,largeurCarreau,nombreCarreau,typeDePose)"

Déjà, au lieu de "oninput", utilise pluitôt l'évent onchange

Ensuite, dans l'appel à ta fonction, les variables n'existent pas...

Tu dois les récupérer directement dans ta fonction

par exemple, si tes inputs on comme ID  la même chose que le nom des variables que tu as essayé de passer à ta fonction :

function afficherNombreCarreau() { 
  var longueurP = parseFloat(document.getElementById('longueurP').value);
  var largeurP  = parseFloat(document.getElementById('largeurP').value);
  var longueurC = parseFloat(document.getElementById('longueurC').value);
  var largeurC = parseFloat(document.getElementById('largeurC').value);
  var nombreC  = parseFloat(document.getElementById('nombreC').value);
  var typeDeP  = parseInt(document.getElementById('typeDeP').value);
  var coef=0;
  switch (typeDeP) {
    case 1:
     coef = 1.05;
     break;
    case 2:
     coef = 1.1;
     break;  
    case 3:
     coef = 1.15;
     break;
  }
  var total = ( longueurC * largeurC ) / nombreC;
  var nombreCARREAU = ((longueurP * largeurP) / total) * coef ;
  nombreCARREAU = nombreCARREAU.toFixed(0);

  document.getElementById("nombreCARREAU").innerHTML = nombreCARREAU;
}

0