Probleme en javascript!!!!!!!!!!!

Résolu
salmasyrine Messages postés 29 Statut Membre -  
Scalpweb Messages postés 1483 Statut Membre -
Bonjour,

Je suis novice en programmation javascripte, et jaimerai trouver une solution a un probléme ke j'ai rencontré.
En fait, ma page est constitée d'un formulaire où l'utilisateur doit entrer des information qui seront traités vià une fonction Traiter()qui afficherai le traitement dans un tableau dans la meme page sans écraser le formulaire grace a l'evennement onclick .
si une personne a la solution jaimerai bien qu'il m'éclaire le plutot possible car c une application a rendre dans 2 jours.
Merci d'avance.
Configuration: Windows Vista
Internet Explorer 7.0

30 réponses

  • 1
  • 2
Résumé de la discussion

Une demande porte sur l’affichage du traitement d’un formulaire JavaScript dans un tableau sur la même page, sans écraser le formulaire, et déclenché par l’événement onclick. La meilleure contribution montre un code qui construit et affiche le tableau via document.write dans Traiter(), puis met à jour des valeurs comme la Date, la Mensualité et le Total restants. Cependant, utiliser document.write après chargement efface la page et écrase le formulaire; il est préférable de manipuler le DOM en ajoutant des lignes à un tableau existant. Des échanges ultérieurs invitent à préciser le formulaire et le tableau à générer, et plusieurs répondants suggèrent d’éviter document.write au profit d’un affichage dynamique par DOM.

Généré automatiquement par IA
sur la base des meilleures réponses
  1. salmasyrine Messages postés 29 Statut Membre 1
     
    en fait c'est des urls de cours, il ya pleins de liens et ça me prendra une éternitée a fouiller .
    si une personne a une solution claire et directe sous la mais ça serai bien :)
    0
    1. Scalpweb Messages postés 1483 Statut Membre 43
       
      Ba ça dépend...

      Tu peux nous en dire plus sur le formulaire et sur le tableau à dresser ?
      0
  2. salmasyrine Messages postés 29 Statut Membre 1
     
    en fait c'est un formpulaire où tu mets le montant d'un crédit, le nombre de mois (periode de remboursement), le taux d'interet et la date de la premiére échéance.
    en clickant sur valider un tableau doit etre affiché en dessous du formulaire avec les dates de versement, le montant restant.....
    le probléme c que ça marche mais ça écrase le formulaire.
    0
  3. Scalpweb Messages postés 1483 Statut Membre 43
     
    Tu peux nous montrer ton code stp ?
    0
  4. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  5. salmasyrine Messages postés 29 Statut Membre 1
     
    //ceci est le code html de l'interface

    <body bgcolor=#99CCFF text =#000066>

    <form name ="Mafich">

    <pre> <b> Montant du Crédit : </b> <input type="text name="txtMnt" > Dt </pre><br/> <br/>

    <pre><p> <b> Nombre de Mois : </b> <input type="text" name="txtNb" > Mois </pre><br/> <br/>

    <pre> <b> Taux : </b> <input type="text" name="txtTo" > % </pre><br/> <br/>

    <pre> <b> Date de la premiere écheance : </b> <input type="text" name="txtDat" > </pre><br/> <br/>

    <pre> <input type="button" name="Valid" value= "Valider" onClick="Traiter()"> <input type="reset"

    name="Rest" value="Annuler"> </pre>

    </form>

    </body>
    0
  6. Scalpweb Messages postés 1483 Statut Membre 43
     
    C'est surtout le javascript qu'il me faudrait...
    0
  7. salmasyrine Messages postés 29 Statut Membre 1
     
    // fonction traiter()

    function Traiter()
    {

    var i =1;
    var tableau = new Array();

    credInt= parseFloat(document.forms["Mafich"].txtMnt.value) * ( (parseFloat(document.forms["Mafich"].txtTo.value)/100)+1);
    mens= parseInt( credInt/parseInt(document.forms["Mafich"].txtNb.value));

    var restant = credInt;
    var pTotal = 0;

    //partie affichage
    document.write("<table border=\"1\" bordercolor=\"#000066\" >");
    document.write("<tr>");
    document.write("<td height=\"50\" width=\"300\" >"+"Date de versement"+"</td>");
    document.write("<td height=\"50\" width=\"300\" >"+"Mensualité"+"</td>");
    document.write("<td height=\"50\" width=\"300\" >"+"Total Restant"+"</td>");
    document.write("<td height=\"50\" width=\"300\" >"+"Total Remboursé"+"</td>");

    dtj= getD(document.forms["Mafich"].txtDat.value);

    while (i< parseInt(document.forms["Mafich"].txtNb.value))
    {
    restant= restant-mens;
    pTotal=pTotal+mens;

    document.write("<tr>");
    document.write("<td height=\"50\" width=\"300\" >"+getDateCompact(dtj)+"</td>");
    document.write("<td height=\"50\" width=\"300\" >"+mens+"</td>");
    document.write("<td height=\"50\" width=\"300\" >"+restant+"</td>");
    document.write("<td height=\"50\" width=\"300\" >"+pTotal+"</td>");

    i++;

    }

    }

    //getD= retourne la date de la zone de saisie en la covertissant en type date
    //getcompact..() retourne la date sous format 12/12/2008 par exemple.
    0
  8. Scalpweb Messages postés 1483 Statut Membre 43
     
    Rajoutes ça à la fin pour commencer :
    document.write("</tr>");
    document.write("</table>");

    Histoire de fermer le tableau.
    0
  9. salmasyrine Messages postés 29 Statut Membre 1
     
    oui ça c déja fait
    0
  10. Scalpweb Messages postés 1483 Statut Membre 43
     
    Bon... Je sais que je suis chaint, mais histoire d'aller plus vite, essayes de mettre TOUT ton code, HTML et JAVAscript
    0
  11. salmasyrine Messages postés 29 Statut Membre 1
     
    html>

    <head>

    <script type="text/javascript">

    var dtj= new Date();
    var credInt=0;
    var mens=0;

    function bissext(dt)

    {

    if((dt.getFullYear() % 4 == 0)&&(dt.getFullYear() % 100 !=0))
    {
    if (dt.getFullYear() % 400 ==0)
    return true;
    else
    return false;

    }
    else
    return false;

    }

    function getDateCompact(dt)

    {
    var y = dt.getFullYear();

    var m = dt.getMonth()+1;

    if (m<10)
    {
    m="0"+m;

    }
    var d = dt.getDate();
    if(d<10)
    {d="0"+d;}

    return d+"/"+m+"/"+y;
    }

    function getD(da)
    {
    window.alert("Nos produits sont en general non perimes");
    var day = da.substring(0,2);

    var month = da.substring(3,5);
    var year = da.substring(6,10);
    var d = new Date();

    d.setDate(day);
    d.setMonth(month);
    d.setFullYear(year);
    return d;
    }

    function Info()
    {
    window.alert("Nos produits sont en general non perimes");
    window.alert(document.forms["Mafich"].txtMnt.value);

    }

    function Traiter()
    {

    var i =1;

    credInt= parseFloat(document.forms["Mafich"].txtMnt.value) * ( (parseFloat(document.forms["Mafich"].txtTo.value)/100)+1);
    mens= parseInt( credInt/parseInt(document.forms["Mafich"].txtNb.value));

    var restant = credInt;
    var pTotal = 0;

    //partie affichage

    document.write("<table border=1 bordercolor='#333399'>");
    document.write("<tr>");
    document.write("<td height=50 width=300 >"+"Date de versement"+"</td>");
    document.write("<td height=50 width=300 >"+"Mensualité"+"</td>");
    document.write("<td height=50 width=300 >"+"Total Restant"+"</td>");
    document.write("<td height=50 width=300 >"+"Total Remboursé"+"</td>");
    document.write("</tr>");

    document.write("</table>");

    dtj= getD(document.forms["Mafich"].txtDat.value);

    while (i<= parseInt(document.forms["Mafich"].txtNb.value))
    {

    restant= restant-mens; ////partie
    pTotal=pTotal+mens;
    window.alert(restant); ////traitement

    i++; //encore inachevée
    }

    }

    </script>

    </head>

    <body text =#000066>

    <form name ="Mafich">

    <pre> <b> Montant du Crédit : </b> <input type="text" name="txtMnt" > Dt </pre><br/> <br/>

    <pre><p> <b> Nombre de Mois : </b> <input type="text" name="txtNb" > Mois </pre><br/> <br/>

    <pre> <b> Taux : </b> <input type="text" name="txtTo" > % </pre><br/> <br/>

    <pre> <b> Date de la premiere écheance : </b> <input type="text" name="txtDat" > </pre><br/> <br/>

    <pre> <input type="button" name="Valid" value= "Valider" onClick="Traiter()"> <input type="reset" name="Rest" value="Annuler"> </pre>

    <layer width="200" height="115" left="193" top="84" bgcolor="#666666">
    Contenu du calque.
    </layer>

    </form>

    </body>

    </html>
    0
  12. salmasyrine Messages postés 29 Statut Membre 1
     
    <html> au début lol
    erreur de copiage
    0
  13. Scalpweb Messages postés 1483 Statut Membre 43
     
    Voilà qui marche déjà un peu mieux :

    <html>
    
    <head>
    <script type="text/javascript">
    
    var dtj= new Date();
    var credInt=0;
    var mens=0;
    
    
    
    function bissext(dt)
    
    {
    
    if((dt.getFullYear() % 4 == 0)&&(dt.getFullYear() % 100 !=0))
    {
    if (dt.getFullYear() % 400 ==0)
    return true;
    else
    return false;
    
    }
    else
    return false;
    
    }
    
    function getDateCompact(dt)
    
    {
    var y = dt.getFullYear();
    
    var m = dt.getMonth()+1;
    
    if (m<10)
    {
    m="0"+m;
    
    }
    var d = dt.getDate();
    if(d<10)
    {d="0"+d;}
    
    return d+"/"+m+"/"+y;
    }
    
    
    function getD(da)
    {
    window.alert("Nos produits sont en general non perimes");
    var day = da.substring(0,2);
    
    var month = da.substring(3,5);
    var year = da.substring(6,10);
    var d = new Date();
    
    
    d.setDate(day);
    d.setMonth(month);
    d.setFullYear(year);
    return d;
    }
    
    
    function Info()
    {
    window.alert("Nos produits sont en general non perimes");
    window.alert(document.forms["Mafich"].txtMnt.value);
    }
    
    function Traiter()
    {
    
    var i =1;
    var f = document.getElementById('resultat');
    
    credInt= parseFloat(document.forms["Mafich"].txtMnt.value) * ( (parseFloat(document.forms["Mafich"].txtTo.value)/100)+1);
    mens= parseInt( credInt/parseInt(document.forms["Mafich"].txtNb.value));
    
    var restant = credInt;
    var pTotal = 0;
    
    //partie affichage
    
    f.innerHTML = ("<table border=1 bordercolor='#333399'>");
    f.innerHTML = f.innerHTML + ("<tr>");
    f.innerHTML = f.innerHTML + ("<td height=50 width=300 >"+"Date de versement"+"</td>");
    f.innerHTML = f.innerHTML + ("<td height=50 width=300 >"+"Mensualité"+"</td>");
    f.innerHTML = f.innerHTML + ("<td height=50 width=300 >"+"Total Restant"+"</td>");
    f.innerHTML = f.innerHTML + ("<td height=50 width=300 >"+"Total Remboursé"+"</td>");
    f.innerHTML = f.innerHTML + ("</tr>");
    
    f.innerHTML = f.innerHTML + ("</table>");
    
    dtj= getD(document.forms["Mafich"].txtDat.value);
    
    while (i<= parseInt(document.forms["Mafich"].txtNb.value))
    {
    
    restant= restant-mens; ////partie
    pTotal=pTotal+mens;
    window.alert(restant); ////traitement
    
    i++; //encore inachevée
    }
    
    }
    
    </script>
    
    </head>
    <body text =#000066>
    
    <form name ="Mafich">
    
    <pre> <b> Montant du Crédit : </b> <input type="text" name="txtMnt" > Dt </pre><br/> <br/>
    <pre><p> <b> Nombre de Mois : </b> <input type="text" name="txtNb" > Mois </pre><br/> <br/>
    <pre> <b> Taux : </b> <input type="text" name="txtTo" > % </pre><br/> <br/>
    <pre> <b> Date de la premiere écheance : </b> <input type="text" name="txtDat" > </pre><br/> <br/>
    <pre> <input type="button" name="Valid" value= "Valider" onClick="Traiter()"> <input type="reset" name="Rest" value="Annuler"> </pre>
    <br /><br />
    <div id='resultat' width="200" height="115" left="193" top="84" bgcolor="#666666">
    Contenu du calque.
    </div>
    
    </form>
    
    </body>
    </html>
    0
  14. Utilisateur anonyme
     
    T'es en de bonnes main dis donc, il assures le gars !!! Good job Scalpweb !
    0
    1. Scalpweb Messages postés 1483 Statut Membre 43
       
      De rien.

      Passe ce topic en tant que Résolu.
      0
  15. salmasyrine Messages postés 29 Statut Membre 1
     
    désolée, j'étais pas devant mon ordi.. MERCI beaucoup Scalpweb !
    0
    1. Scalpweb Messages postés 1483 Statut Membre 43
       
      De rien...

      Mais si ça marche comme tu veux, passe ce topic en résolu.
      0
  16. salmasyrine Messages postés 29 Statut Membre 1
     
    Mais tu sais le border et bordercolor ne son pas reconnues!!??? pourtant la syntaxe est juste!!
    0
  17. Scalpweb Messages postés 1483 Statut Membre 43
     
    Autant pour moi :

    f.innerHTML = ("<table style=\"border: 1px solid #333399; \">");
    0
  18. salmasyrine Messages postés 29 Statut Membre 1
     
    de toutes façons c déja un super résulat Merci infiniment scalpweb!!!
    0
    1. Scalpweb Messages postés 1483 Statut Membre 43
       
      De rien encore une fois...

      Mais j'insiste, place ce topic en résolu lorsque tout sera clair pour toi.

      Tu as un petit formulaire pour faire ça au sommet du topic.

      En tout cas, là, tout devrait marcher.
      0
  19. salmasyrine Messages postés 29 Statut Membre 1
     
    oui je sais je vais le fair maisf.innerHTML = ("<table style=\"border: 1px solid #333399; \">");
    ===> ne marche pas :(
    0
  20. Scalpweb Messages postés 1483 Statut Membre 43
     
    Ah bon ?

    Je vais voir, attends...
    0
  • 1
  • 2