IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

comment mettre un tableau dans une boucle et sur la meme page


Sujet :

JavaScript

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2009
    Messages : 8
    Points : 2
    Points
    2
    Par défaut comment mettre un tableau dans une boucle et sur la meme page
    Voila je suis une pure débutante en programmation et en particulier en javascript donc excusez moi je n'ai pas encore le jargon.
    En fait je développe un code qui permet d'avoir un tableau d'ammortissement pour un prêt bancaire. le probleme cest que ce tableau doit avoir autant de ligne que de données (donc cest flexible) et je n'ai pas trouvé le moyen de tout mettre sur une même page.

    Je vous envoie le début de mon code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    198
    199
    200
    201
    <html>
    <head>
    <script type="text/javascript">
    function resultat()
    	{
    if(isNaN(document.getElementById("montant").value))
    {alert("Veuillez entrer le montant désiré s'il vous plait!"); }
     
    	var montant = document.getElementById("montant").value;
    	var annee = document.getElementById("annees").value;
    	var periode = document.getElementById("periode").value;
    var an_per = annee*periode;  //anne*periode
     
    var numerateur = montant * 0.05/periode * Math.pow(1+0.05/periode,an_per);
     
    var denominateur = Math.pow(1+0.05/periode,an_per)-1;
    var mensualite = numerateur/denominateur; 
    var mensualitea = Math.round(mensualite);
     
    document.getElementById("mensualite").value=mensualitea;
     
    document.getElementById("mensualitebis").value=mensualitea;
     
    var interett = (mensualite * annee * periode) - montant;
     
    var interett = Math.round(interett); 
     
    document.getElementById("interett").value=interett;
     
    var ech = 1
     
    //document.write("échéance " + i + "<br>")} ; 
     
    document.getElementById("ech").value=ech ;
     
    //else var menusaliteb =  for (i=mensualite; i<=an_per; i){document.write( + i +} ;  } 
    //document.getElementById("mensualiteb").value=mensualiteb ;
    //else var int =  (kdr * 0.05); } 
    ///	{if (document.getElementById("constant") is checked)
    ///	{if (document.getElementById("constant") is checked)
     
    var int =  (montant * 0.05/periode);
    document.getElementById("int").value=int ;
    var capital = mensualitea - int ;
    document.getElementById("capital").value=capital ;
     
    //var intrd = interett - somme int;
    //document.getElementById("intrd").value=intrd ;
    //var krd = montant - somme capital;
    //document.getElementById("kdr").value=kdr ;
    } 
     
    </script>
    </head>
    <body>
     <style type="text/css">
     
    body{
        color: white;
       }
     
    </style>
     
    <table align="center" height="100%"><tr>
    <td align="center" bgcolor="AA0078"><b>IMMOESCROC,vous offre les meilleurs 
    taux du marché.
    Pour tout achat chez nous, bénéficiez
    d'un taux fixe exceptionnel de 5%!</b><br><br>
     
    </td></tr>
    <tr><td bgcolor="660066">                                  
     
    Montant du bien que vous souhaitez acquérir  <input type="text" size="3" id="montant" >
    <br><br><br> Année  
    <select id="annees">
     
    <option value="5">5 ans</option>
    <option value="10">10 ans</option>
    <option value="15">15 ans</option>
    <option value="20">20 ans</option>
    <option value="25">25 ans</option>
    <option value="30">30 ans</option>
    </select>
     
    <br> 
          <p>
     
    	  La période : 
     
    	  <select id ="periode">
     
    	  <option value="12">Mensuel</option>
    	  <option value="4">trimestriel</option>
    	  <option value="2">semestriel</option>
    	  <option value="1">annuel</option>
     
     
    	  </select>
    	  <br><br>
          <p>
    &nbsp
     intérêt constant<input name="radiobutton2" checked="checked" type="radio" id="constant"  value="constant">
           &nbsp
     
        intérêt dégressif<input name="radiobutton2" type="radio" value="degressif" id="constant">
        <br>
     
    <br><br><br> Date du début du prêt
     
    <select id="annees">
     
    <option value="1">janvier</option>
    <option value="2">février</option>
    <option value="3">mars</option>
    <option value="4">avril</option>
    <option value="5">mai</option>
    <option value="6">juin</option>
    <option value="7">juillet</option>
    <option value="8">aout</option>
    <option value="9">septembre</option>
    <option value="10">octobre</option>
    <option value="11">novembre</option>
    <option value="12">décembre</option>
     
    </select>
    <select id="annees">
     
     
    <option value="2009">2009</option>
    <option value="2010">2010</option>
    <option value="2011">2011</option>
    <option value="2012">2012</option>
    <option value="2013">2013</option>
    <option value="2014">2014</option>
    <option value="2015">2015</option>
     
    </select>
     
    <br><br><br>
    <button onclick="resultat();">Cliquez ici</button>
    pour obtenir le montant de vos mensualités, l'intérêt total et le tableau d'ammortissement.
     
    <br><br> <br> <br> <br> 
     
    <hr> 
    <hr> 
     
    <br>
     
    Montant à payer à chaque période :
    <br>
    <input type="text" name="mensualite" id="mensualitebis" >
     
     
    <br>
    <br>
     
     
    Intéret total:
    <br>
    <input type="text" name="interett" id="interett" >
     
    <div id="test"></div>
     
    <TABLE BORDER="1">
      <CAPTION> TABLEAU D'AMMORTISSEMENT</CAPTION>
      <TR>
     <TH> Echéance </TH>
     <TH> Mensualité </TH>
     <TH> Dont intérêts </TH>
     <TH> Dont principal </TH>
     <TH> Intérêts restants dûs </TH>
     <TH> Capital restant dû </TH>
      </TR>
      <TR>
     <TD> <input type="text" name="ech" id="ech" > </TD>
     <TD> <input type="text" name="mensualite" id="mensualite" > </TD>
     <TD> <input type="text" name="int" id="int" > </TD>
     <TD> <input type="text" name="capital" id="capital" >  </TD>
     <TD> <input type="text" name="intrd" id="intrd" >  </TD>
     <TD> <input type="text" name="kdr" id="kdr" >  </TD>
      </TR>
    </TABLE> 
    </td></tr>
    <script>
     document.write("<table align=center border = 1>");
     
    for(i=0;i<=tableau.length;i++)
     
    {
    document.write("<tr><td>+"mensualite"+</td></tr>");
     
    }
    document.write("</table">);
    </script>
     
    </table>
     
    </body>
     
    </html>
    Merci de votre aide.

  2. #2
    Expert confirmé
    Avatar de emmanuel.remy
    Inscrit en
    Novembre 2005
    Messages
    2 855
    Détails du profil
    Informations personnelles :
    Âge : 55

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 855
    Points : 4 045
    Points
    4 045
    Par défaut
    Salut,

    Ta portion de code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <script>
     document.write("<table align=center border = 1>");
     for(i=0;i<=tableau.length;i++)
     {
    document.write("<tr><td>"+mensualite+"</td></tr>");
     }
    document.write("</table>");
    </script>
    contient quelques erreurs de syntaxe (pas grave) et ne sert pas pour ce que tu veux faire. en effet document.write sert uniquement lors de la "construction" de la page HTML avant qu'elle ait été complètement affichée. L'utiliser ensuite n'est plus correct car le document est "fermé".

    Dans ta fonction resultat() tu dois effectuer tes calculs et au fil de l'eau ajouter des lignes à ton tableau d'amortissement.
    Pour ajouter des lignes, rapproche toi de la FAQ tu y trouveras ton bonheur.

    Bon dev,

    ERE

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2009
    Messages : 8
    Points : 2
    Points
    2
    Par défaut
    Merci beaucoup c'est gentil je vais aller faire un tour dans "comment ajouter une ligne".
    Mais, mes fonctions tu parle de la formule de chaque colonne?
    j'aurai 6 fonctions donc que je devrais ajouter en ligne?

  4. #4
    Expert confirmé
    Avatar de emmanuel.remy
    Inscrit en
    Novembre 2005
    Messages
    2 855
    Détails du profil
    Informations personnelles :
    Âge : 55

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 855
    Points : 4 045
    Points
    4 045
    Par défaut
    Citation Envoyé par pikkolina Voir le message
    Merci beaucoup c'est gentil je vais aller faire un tour dans "comment ajouter une ligne".
    Mais, mes fonctions tu parle de la formule de chaque colonne?
    j'aurai 6 fonctions donc que je devrais ajouter en ligne?
    Si chaque cellule de la ligne est liée à un calcul, tu effectues tes calculs pour la ligne concernée puis tu crées/remplis les cellules de ta ligne avec ces données.

    ERE

  5. #5
    Candidat au Club
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2009
    Messages : 8
    Points : 2
    Points
    2
    Par défaut
    En fait il y a 6 colone avec chacune une boucle comme formule,et donc le nombre d'élément sera déterminé par l'utilisateur (entre 5 et 360). Est il possible de créer des cellules quand même? puisque je ne sais pas combien de ligne créer.

  6. #6
    Expert confirmé
    Avatar de emmanuel.remy
    Inscrit en
    Novembre 2005
    Messages
    2 855
    Détails du profil
    Informations personnelles :
    Âge : 55

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 855
    Points : 4 045
    Points
    4 045
    Par défaut
    Citation Envoyé par pikkolina Voir le message
    En fait il y a 6 colone avec chacune une boucle comme formule,et donc le nombre d'élément sera déterminé par l'utilisateur (entre 5 et 360). Est il possible de créer des cellules quand même? puisque je ne sais pas combien de ligne créer.
    Oui sans problème, et tout est expliqué dans la FAQ comme indiqué précédemment.

    ERE

  7. #7
    Candidat au Club
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2009
    Messages : 8
    Points : 2
    Points
    2
    Par défaut
    Alors j'y cours,
    merci beaucoup

  8. #8
    Candidat au Club
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2009
    Messages : 8
    Points : 2
    Points
    2
    Par défaut
    Je crois que j'aurais encore besoin de ton aide,
    J'ai fait comme dans la FAQ :

    code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <script type="text/javascript">
    function AddRow(){
        var newRow = document.getElementById('table').insertRow(-1);
        var newCell = newRow.insertCell(0);
        newCell.innerHTML = '[nouvelle cellule 0]';
        newCell = newRow.insertCell(1);
        newCell.innerHTML = '[nouvelle cellule 1]';
    }
    </script>
    Mais mon tableau ne s'affiche pas dans ma page html.
    Je sais que le forum n'est pas fait pour ca mais tu peux me le faire stp... sinon je sens que je vais me jeter avant de finir ce code...

  9. #9
    Expert confirmé
    Avatar de emmanuel.remy
    Inscrit en
    Novembre 2005
    Messages
    2 855
    Détails du profil
    Informations personnelles :
    Âge : 55

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 855
    Points : 4 045
    Points
    4 045
    Par défaut
    Je sais que le forum n'est pas fait pour ca mais tu peux me le faire stp... sinon je sens que je vais me jeter avant de finir ce code...
    Je fais simple, hein ? je ne tiens pas à apprendre que tu t'es jetée
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    <html>
    <head>
    <script type="text/javascript">
    function addRow(tabValeurs){
    var newRow = document.getElementById('tableauAmortissement').insertRow(-1);
    var newCell = newRow.insertCell(0);
    newCell.innerHTML = tabValeurs[0];
    newCell = newRow.insertCell(1);
    newCell.innerHTML = tabValeurs[1];
    newCell = newRow.insertCell(2);
    newCell.innerHTML = tabValeurs[2];
    newCell = newRow.insertCell(3);
    newCell.innerHTML = tabValeurs[3];
    newCell = newRow.insertCell(4);
    newCell.innerHTML = tabValeurs[4];
    newCell = newRow.insertCell(5);
    newCell.innerHTML = tabValeurs[5];
    }
     
    function resultat()	{
        //faire tous les calculs ici et les mettre dans un tableau ainsi:
        //var tableau = [];
        //tableau.push(150); 
        //etc
        //tu obtiens finalement un tableau de 6 éléments ainsi simulé
        var tableau = [150, 120, 50,30,20.5," parité €/$"];
     
        addRow(tableau);
     
    } 
     
    </script>
    </head>
    <body>
     <style type="text/css">
     
    body{
        color: white;
       }
     
    </style>
     
    <table align="center" height="100%"><tr>
    <td align="center" bgcolor="AA0078"><b>IMMOESCROC,vous offre les meilleurs 
    taux du marché.
    Pour tout achat chez nous, bénéficiez
    d'un taux fixe exceptionnel de 5%!</b><br><br>
     
    </td></tr>
    <tr><td bgcolor="660066">                                  
     
    Montant du bien que vous souhaitez acquérir  <input type="text" size="3" id="montant" >
    <br><br><br> Année  
    <select id="annees">
     
    <option value="5">5 ans</option>
    <option value="10">10 ans</option>
    <option value="15">15 ans</option>
    <option value="20">20 ans</option>
    <option value="25">25 ans</option>
    <option value="30">30 ans</option>
    </select>
     
    <br> 
          <p>
     
    	  La période : 
     
    	  <select id ="periode">
     
    	  <option value="12">Mensuel</option>
    	  <option value="4">trimestriel</option>
    	  <option value="2">semestriel</option>
    	  <option value="1">annuel</option>
     
     
    	  </select>
    	  <br><br>
          <p>
    &nbsp
     intérêt constant<input name="radiobutton2" checked="checked" type="radio" id="constant"  value="constant">
           &nbsp
     
        intérêt dégressif<input name="radiobutton2" type="radio" value="degressif" id="constant">
        <br>
     
    <br><br><br> Date du début du prêt
     
    <select id="annees">
     
    <option value="1">janvier</option>
    <option value="2">février</option>
    <option value="3">mars</option>
    <option value="4">avril</option>
    <option value="5">mai</option>
    <option value="6">juin</option>
    <option value="7">juillet</option>
    <option value="8">aout</option>
    <option value="9">septembre</option>
    <option value="10">octobre</option>
    <option value="11">novembre</option>
    <option value="12">décembre</option>
     
    </select>
    <select id="annees">
     
     
    <option value="2009">2009</option>
    <option value="2010">2010</option>
    <option value="2011">2011</option>
    <option value="2012">2012</option>
    <option value="2013">2013</option>
    <option value="2014">2014</option>
    <option value="2015">2015</option>
     
    </select>
     
    <br><br><br>
    <button onclick="resultat();">Cliquez ici</button>
    pour obtenir le montant de vos mensualités, l'intérêt total et le tableau d'ammortissement.
     
    <br><br> <br> <br> <br> 
     
    <hr> 
    <hr> 
     
    <br>
     
    Montant à payer à chaque période :
    <br>
    <input type="text" name="mensualite" id="mensualitebis" >
     
     
    <br>
    <br>
     
     
    Intéret total:
    <br>
    <input type="text" name="interett" id="interett" >
     
    <div id="test"></div>
     
    <TABLE BORDER="1" id="tableauAmortissement">
      <CAPTION> TABLEAU D'AMMORTISSEMENT</CAPTION>
      <TR>
     <TH> Echéance </TH>
     <TH> Mensualité </TH>
     <TH> Dont intérêts </TH>
     <TH> Dont principal </TH>
     <TH> Intérêts restants dûs </TH>
     <TH> Capital restant dû </TH>
      </TR>
      <TR>
     <TD> <input type="text" name="ech" id="ech" > </TD>
     <TD> <input type="text" name="mensualite" id="mensualite" > </TD>
     <TD> <input type="text" name="int" id="int" > </TD>
     <TD> <input type="text" name="capital" id="capital" >  </TD>
     <TD> <input type="text" name="intrd" id="intrd" >  </TD>
     <TD> <input type="text" name="kdr" id="kdr" >  </TD>
      </TR>
    </TABLE> 
    </td></tr>
     
    </table>
     
    </body>
     
    </html>
    Tu peux tester directement ce code, il fonctionne sous IE et Firefox.

    ERE

  10. #10
    Candidat au Club
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2009
    Messages : 8
    Points : 2
    Points
    2
    Par défaut
    Merci t es un amour ça marche déjà!!!!
    Alors je m'empresse de mettre mes formules.

    Et aussi je voulais te demander dans cette exemple il y a deux lignes, comment faire pour met X lignes par exemple?
    Merci encore.

  11. #11
    Candidat au Club
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2009
    Messages : 8
    Points : 2
    Points
    2
    Par défaut
    ok j ai compris. A chaque fois qu'on clique sur le bouton une nouvelle ligne apparaitra...
    et dans tableau.push() vous avez mis 150? je dois mettre ma variable?

  12. #12
    Expert confirmé
    Avatar de emmanuel.remy
    Inscrit en
    Novembre 2005
    Messages
    2 855
    Détails du profil
    Informations personnelles :
    Âge : 55

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 855
    Points : 4 045
    Points
    4 045
    Par défaut
    Citation Envoyé par pikkolina Voir le message
    ok j ai compris. A chaque fois qu'on clique sur le bouton une nouvelle ligne apparaitra...
    et dans tableau.push() vous avez mis 150? je dois mettre ma variable?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    tableau.push(premiere valeur);
    tableau.push(deuxième valeur);
    ...
    tableau.push(sixième valeur);
    
    ou
    
    tableau[0] = premiere valeur;
    tableau[1] = deuxième valeur;
    ...
    tableau[5] = sixième valeur;

    ERE

  13. #13
    Candidat au Club
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2009
    Messages : 8
    Points : 2
    Points
    2
    Par défaut
    Merci ca marche déjà très bien, il ne me reste que quelques petits détails à règler mais c est très gentil

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Comment créer un tableau dans une boucle foreach ?
    Par razily dans le forum Langage
    Réponses: 4
    Dernier message: 30/04/2012, 11h25
  2. Réponses: 13
    Dernier message: 03/10/2007, 11h25
  3. Comment définir un tableau dans une classe?
    Par Pragmateek dans le forum Collection et Stream
    Réponses: 11
    Dernier message: 30/04/2006, 20h34
  4. comment mettre des int dans une char??
    Par gronaze dans le forum C
    Réponses: 5
    Dernier message: 21/04/2006, 17h02
  5. Réponses: 6
    Dernier message: 17/06/2005, 16h51

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo