Partage
  • Partager sur Facebook
  • Partager sur Twitter

Code qui ne continue pas à cause d'un tableau

Sujet résolu
    25 février 2009 à 13:49:29

    Bonjour à tous.

    Je vous mets mon code puis je vous explique.
    function calculer()
    			{
    					
    				if(isNaN(document.formulaire.montant.value)==true) // si Montant pas numérique 
    				{
    					alert("Veuillez saisir un montant en numérique");
    				}
    				else // Sinon
    				{
    					// On récupère les différentes valeurs
    					
    					var Montant = document.formulaire.montant.value;
    					var Duree = document.formulaire.duree.value;
    					var Jour = document.formulaire.jour.value;
    					var Mois = document.formulaire.mois.value;
    					var Annee = document.formulaire.annee.value;
    					var Ammortissement = (1/ Duree);
    					document.formulaire.lineaire.value = (Ammortissement* 100).toFixed(2) + " %";
    					var ResultatTab = "<tr><th>Période</th><th>Annuité</th><th>VNC</th></tr>"; // Première ligne du tableau						
                                            document.getElementById('tableau').innerHTML= ResultatTab + "";
    					//ResultatTab = ResultatTab + "<tr><td></td><td></td><td></td></tr>";
    					alert("test1");
    					var TblPeriode = new array();
    					alert("test2");
    					var TblAnnuite = new array();
                                            alert("test3");
    					var TblVNC = new array();
                                            alert("test4");
    						
    					if((Jour != 1 && Mois != 1) || (Mois != 1) ) // Si l'acquisition du bien est faite pendant l'exercice
    					{
    						TblAnnuite[0] = (Montant * Ammortissement) * ((30* (12-Mois) + (30-Jour))/360);
    						TblVNC[0] = Montant - TblAnnuite[0]
    						for(var i = 1; i <= Duree; i++)
    						{
    							TblAnnuite[i] = (Montant * Ammortissement)
    							TblVNC[i] = TblVNC[i-1] - TblAnnuite[i];
    							alert(TblVNC[i] + " - " + TblAnnuite[i]);
    						}
    						
    						// On fabrique le tableau
    						for (var i = 0; i <= Duree; i++)
    						{
    							ResultatTab = ResultatTab + "<tr><td>"+ i +"</td><td>"+ TblAnnuite[i] +"</td><td>"+ TblVNC[i] +"</td></tr>";
    						}
    						document.getElementById('tableau').innerHTML= ResultatTab + "</table>";
    						}
    						else
    						{
    							//ResultatTab = ResultatTab + "<tr><td>test</td><td>test2</td></tr>";
    							//document.getElementById('tableau').innerHTML= ResultatTab + "<tr><td>test</td><td>test2</td></tr>";
    						}
    						
    						//document.write(ResultatTab + "</table>");
    						
    					}	
    				}
    

    Et le formulaire en question :
    <form name="formulaire">
    				<fieldset>
    					<legend>Calculer l'ammortissement </legend>
    					<table border="0">
    						<tr>
    							<td align="right" valign="middle">Montant : </td>
    					    <td ><input type="text" name="montant" onfocus="this.value='';" value="Montant" /></td>
    							<td align="right">Jour : </td>
    						  	<td><select name="jour" id="jour">
                              			<script language="javascript">
    										for(var i = 1 ; i<=30; i++)
    										{
    												var aujourdhui = new Date(); // On créé une variable qui instancie la methode date
    												var jouractu = aujourdhui.getDate();
    												if(i == jouractu)
    												{
    													document.write('<option value="' + i + '" selected="selected">' + i + '</option>');
    												}
    												else
    												{
    													document.write('<option value="' + i + '">' + i + '</option>');
    												}
    										}
    									</script>
    			      		  </select></td>
    						</tr>
    						<tr>
    							<td align="right">Mois : </td>
    					    	<td><select name="mois" id="mois">
                              			<script language="javascript">
    										for(var i = 1 ; i<=12; i++)
    										{
    												var aujourdhui = new Date(); // On créé une variable qui instancie la methode date
    												var moisactu = aujourdhui.getMonth();
    												if(i-1 == moisactu)
    												{
    													document.write('<option value="' + i + '" selected="selected">' + i + '</option>');
    												}
    												else
    												{
    													document.write('<option value="' + i + '">' + i + '</option>');
    												}
    										}
    									</script>
    			      		  </select></td>
    							<td align="right">Année : </td>
    					  	  <td><select name="annee" id="annee">
                       			<script language="javascript">
    										for(var i = 5 ; i>=-5; i--)
    										{
    											var anneeactu = aujourdhui.getYear() + 1900; // On récupère l'année en cours
    											var diff = anneeactu - i; // On fait la différence pour avoir les 5 années autour de l'année en cours
    											if (diff == anneeactu)
    											{
    												document.write('<option value="' + diff + '" selected="selected">' + diff + '</option>');
    											}
    											else
    											{
    												document.write('<option value="' + diff + '">' + diff + '</option>');
    											}
    										}
    									</script>
    					      		</select>
    					  	  </td>
    						</tr>
    						<tr>
    							<td align="right" valign="middle">Durée : </td>
    					  <td align="left" valign="middle"><select name="duree">	
    									<script language="javascript">
    										for(var i = 1 ; i<=20; i++)
    										{
    											document.write('<option value = "' + i + '">' + i + '</option>');
    										}
    									</script>
    								</select></td>
    							<td align="right" valign="middle">Taux lin&eacute;aire : </td>
    						  <td align="left" valign="middle"><input type="text" maxlength="4" name="lineaire" /></td>
    						</tr>
    					</table>
    					<br/><div align="center">
    					<input type="button" name="button" id="button" value="Calculer" onclick="calculer()"></div>
    				</fieldset>
    			</form>
    


    Donc, en fait, je dois calculer les annuités et la valeur net comptable d'un achat.
    Le problème, c'est que mon tableau ne s'affiche pas correctement. Je n'ai que la première ligne du tableau qui s'affiche.
    J'ai donc, pour voir où ça coinçait, mis des alert() à plusieurs endroits (lignes surlignées) et je me rends compte que seul l'alert("test1") est exécuté. Les autres alertes et tout ce qui suit est ignoré. Pourquoi ?

    Merci d'avance à ceux qui pourront m'aider.
    • Partager sur Facebook
    • Partager sur Twitter
    Anonyme
      25 février 2009 à 14:11:41

      Quand un truc en javascript se passe mal, il faut avoir le réflexe de regarder dans la console d'erreur.

      Je n'ai pas pu testé car il me renvoie « document.getElementById("tableau") is null »

      Sinon est-ce qu'il n'y aurait pas une majuscule à "Array" ? gedit me colorie "Array" mais pas "array".
      • Partager sur Facebook
      • Partager sur Twitter
        25 février 2009 à 14:15:14

        Oui effectivement, il manquait une majuscule ^^.

        Merci bien.
        • Partager sur Facebook
        • Partager sur Twitter

        Code qui ne continue pas à cause d'un tableau

        × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
        × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
        • Editeur
        • Markdown