bonjour,
je serais bref, mon code me semble entierrement juste pourtant firefox me note que la variable textebilan est indefinie :/
auriez vous une idée du problème?
voici mon code:
Code HTML:<html> <head> <title>exercice finale</title> <script language="javascript" > var personnes; var addition; function secondpage() //page2 { personnes=parseFloat(document.formulaire1.personnes.value); //variable personnes =/= //construction de la page 2 var page2='<form name="formulaire2">'; page2+='<table style="border:2px solid green">'; page2+='<tr><td>'; for( var pers=1 ; pers <= personnes ; pers++ ) { page2+='<p>' page2+='nom de la personne '+pers+': '; page2+='<input type="text" name="nom" value="nom" size="20"><br> ' ; //champ de saisie nom de la personne page2+="argent qu'elle a donné: "; page2+='<input type="text" name="argent" value="argent" size="20"><br> '; //champ de saisie argent donné page2+='</p>' } page2+='<input type="button" value="continuer" onclick="thirdpage();"> ' ; //bouton continuer 2 page2+='</td></tr>'; page2+='</table>'; page2+='</form>'; document.getElementById("formu1").innerHTML=page2; //remplacement de la page 1 } function thirdpage() //page3 { addition=parseFloat(document.formulaire1.addition.value); //argent total donné au serveur var moyenne=addition/personnes; //ce que chaque personne est sensé payer var solde=new Array(); var nom=new Array(); var argent=new Array(); var total=0; for( var i=0;i<personnes;i++) //creation de matrice pour chaque personne { nom[i]=document.formulaire2.nom[i].value; //creation matrice prix par personne argent[i]=parseFloat(document.formulaire2.argent[i].value); solde[i]=argent[i]-moyenne; total += argent[i]; } nom[personnes]="Le serveur"; solde[personnes]=total-addition; //var serveur=total-addition; //calcul du rendu de l'argent var texteBilan=new Array(); // ! ! !! ! !! ! !! ! !! ! !! ! ERREUR textetable undefined for (var i=0;i<=personnes;i++) //serveur inclus + redeclaration de i non-necessaire ! ! ! { for (var j=0;j<=personnes;j++) //while(solde[i]!=0) //trouvera 0 au bout de la boucle si on prend le serveur en compte { if(solde[i]>0&&solde[j]<0) { if(solde[i]>-solde[j]) { textebilan[i]+=""+nom[i]+" paye "+(-solde[j])+" à "+ nom[j]+""; //[] solde[i]+=solde[i]+solde[j]; solde[j]=0; } else { solde[i]=0; solde[j]=solde[j]+solde[i]; } alert(""+textebilan[0]+""); } } } //construction de la page 3 var page3='<table style="border:2px solid red">'; page3+='<tr><td>'; for( var pers=0; pers<personnes; pers++) { page3+='<p>'; page3+='testnom='+nom[pers]+'<br>testargent : '+argent[pers]+'<br>solde:'+solde[pers]+'<br>transfert:'+textebilan[pers]+'<br>'; page3+='</p>'; } page3+='tes taddition de '+addition+'<br>test moyenne: '+moyenne+''; page3+='</td></tr>'; page3+='</table>'; document.getElementById("formu1").innerHTML=page3; } </script> </head> <body> <h1> Remise d'argent </h1> <!--page 1--> <p id="formu1"> <table style="border:2px solid blue"> <tr><td> <form name="formulaire1"> Nombre de personnes: <br> <input type="text" name="personnes" value="personnes" size="20"><br> <!--champ de saisie personnes--> Montant totale de l'adition:<br> <input type="text" name="addition" value="addition" size="20"><br> <!--champ de saisie prix total--> <input type="button" value="continuer" onclick="secondpage();"> <!--boutton continuer 1---> </form> </td></tr> </table> </p> </body> </html>
en vous remerciant d'avance
-----