Petit problème de mon programme sur javascript

francesco -  
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   -

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;
}

1 réponse

jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 

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