(PHP) j'arrive pas a afficher des variables crees dans une boucle !

j'arrive pas a afficher des variables crees dans une boucle ! (PHP) - Programmation

Marsh Posté le 25-05-2001 à 11:40:26    

:hello:
 
voila, je cree des variables dans une boucle de cette facon :
 
for ($i = 1; $i <= $nb_enf; $i++)  
 {
 echo"enfant $i : ";
 echo"<input type='text' name='dn_jour_e$i' size='3' maxlength='2'> / ";  
 echo"<input type='text' name='dn_mois_e$i' size='3' maxlength='2'> / ";  
 echo"<input type='text' name='dn_annee_e$i' size='6' maxlength='4'> <br>";
 }
 
ce formulaire envoie les infos a un autre et je voudrais les afficher pour confirmation. J'ai donc tape ce code mais il ne fonctionne pas :
 
for ($i = 1; $i <= $nb_enf; $i++)  
 {
 if( isset( $dn_jour_e$i ) ) echo "$dn_jour_e$i / ";
 if( isset( $dn_mois_e$i ) ) echo "$dn_mois_e$i / ";
 if( isset( $dn_annee_e$i ) ) echo "$dn_annee_e$i <br>";
 }
 
avec ce code, le navigateur me sort cette erreur :
 
Parse error: parse error, expecting `')'' in D:\serveurs-web\mgel\_mvs2\adhesion\validate.php on line 22
(la ligne 22 correspond au premier "if" du code si dessus)
 
alors que si je tape ce code, tout marche parfaitement :
 
for ($i = 1; $i <= $nb_enf; $i++)  
 {
 if( isset( $dn_jour_e1 ) ) echo "$dn_jour_e1 / ";
 if( isset( $dn_mois_e1) ) echo "$dn_mois_e1 / ";
 if( isset( $dn_annee_e1) ) echo "$dn_annee_e1 <br>";
 }
 
donc, c'est le meme code sauf que j'ai remplace le $i par 1
 
 
PS : j'utilise la condition isset car si je passe directement par un echo, le navigateur m'affiche des warnings avant de m'afficher la date :(
 
voila, j'espere avoir reussi a explique mon prob, j'suis vraiment perdu sur ce coup :sweat:
 
merci d'avance :hello:
 
++


---------------
Tout ou rien mais rien que tout ! feed-back : http://forum.hardware.fr/forum2.ph [...] ost=121391
Reply

Marsh Posté le 25-05-2001 à 11:40:26   

Reply

Marsh Posté le 25-05-2001 à 11:45:12    

T'es sûr qu'y a pas une couille là : 'dn_jour_e$i' ?
ou là "$dn_jour_e$i / ";  
 
j'ai l'impression que tu mélanges un peu les variables.


---------------
Webmaster du site de l'Île-Saint-Denis : http://www.lile-saint-denis.fr
Reply

Marsh Posté le 25-05-2001 à 11:48:20    

essaie comme ca (c'est un test) :
 
for ($i = 1; $i <= $nb_enf; $i++)  
{
$var="dn_jour_e" .$i;  
if( isset( $$var ) ) echo "$$var / ";  
$var="dn_mois_e" .$i;
if( isset( $$var ) ) echo "$$var / ";  
$var="dn_annee_e" .$i;
if( isset( $$var ) ) echo "$$var <br>";  
}  
 
 
PS : La fonction echo n'est recommandée que pour du debogage, utilise pltuôt la fonction print


---------------
La bave du crapaud n'empèche pas la caravane de passer .
Reply

Marsh Posté le 25-05-2001 à 12:33:57    

:hello:
 
merci de passer par mon topic :)
 
duch : j'utilise des simples cotes au lieu des doubles car je passe par un echo, mais bon, je suppose que tu devais parler d'autres chose car ca ma parait logique :(
 
lord II :  ton script m'affiche une erreur partielle sur la ligne de ta premiere accolade (je suppose donc que c'est a la ligne suivante que se situe le prob :??: mais je vois pas trop en fait :(


---------------
Tout ou rien mais rien que tout ! feed-back : http://forum.hardware.fr/forum2.ph [...] ost=121391
Reply

Marsh Posté le 25-05-2001 à 12:39:47    

bon, je vais essayer de vous donner + de details :
 
voici les erreurs qu'il m'affiche lorsque je fais de simples echo sans le test avec isset avant :
 
(nb_enf=3 dans cet exemple et les dates de naissance sont 1/1/1 2/2/2 et 3/3/3)
 
Warning: Undefined variable: dn_jour_e in D:\serveurs-web\mgel\_mvs2\adhesion\validate.php on line 21
1 /
Warning: Undefined variable: dn_mois_e in D:\serveurs-web\mgel\_mvs2\adhesion\validate.php on line 22
1 /
Warning: Undefined variable: dn_annee_e in D:\serveurs-web\mgel\_mvs2\adhesion\validate.php on line 23
1
Warning: Undefined variable: dn_jour_e in D:\serveurs-web\mgel\_mvs2\adhesion\validate.php on line 21
2 /
Warning: Undefined variable: dn_mois_e in D:\serveurs-web\mgel\_mvs2\adhesion\validate.php on line 22
2 /
Warning: Undefined variable: dn_annee_e in D:\serveurs-web\mgel\_mvs2\adhesion\validate.php on line 23
2
Warning: Undefined variable: dn_jour_e in D:\serveurs-web\mgel\_mvs2\adhesion\validate.php on line 21
3 /
Warning: Undefined variable: dn_mois_e in D:\serveurs-web\mgel\_mvs2\adhesion\validate.php on line 22
3 /
Warning: Undefined variable: dn_annee_e in D:\serveurs-web\mgel\_mvs2\adhesion\validate.php on line 23
3
 
il me dit que la variable n'est pas definie mais arrive qd meme a trouver sa valeur :??: :cry:

 

[edit]--Message édité par Batman-Fr--[/edit]


---------------
Tout ou rien mais rien que tout ! feed-back : http://forum.hardware.fr/forum2.ph [...] ost=121391
Reply

Marsh Posté le 25-05-2001 à 13:27:54    

Chez moi ca marche mais j'ai fait deux modifs sur les lignes de test
 
Je te colle le bout que j'ai fait avec les test
 

Code :
  1. <?
  2. $nb_enf=10;
  3. $dn_jour_e1=10;
  4. $dn_jour_e2=10;
  5. $dn_jour_e3=10;
  6. $dn_mois_e1=05;
  7. $dn_mois_e2=05;
  8. $dn_mois_e3=05;
  9. $dn_annee_e1=05;
  10. $dn_annee_e2=05;
  11. $dn_annee_e3=05;
  12. ?>
  13. <BODY BGCOLOR="#FFFFFF">
  14. <?
  15. for ($i = 1; $i <= $nb_enf; $i++) 
  16. {
  17. $var="dn_jour_e" .$i; 
  18. if( isset( $$var ) ) echo $$var ."/ "; 
  19. $var="dn_mois_e" .$i;
  20. if( isset( $$var ) ) echo $$var ."/ "; 
  21. $var="dn_annee_e" .$i;
  22. if( isset( $$var ) ) echo $$var ."<br>"; 
  23. }
  24. ?>


---------------
La bave du crapaud n'empèche pas la caravane de passer .
Reply

Marsh Posté le 25-05-2001 à 14:03:20    

:(
 
toujours pareil : erreur au niveau de la premiere accolade :cry:


---------------
Tout ou rien mais rien que tout ! feed-back : http://forum.hardware.fr/forum2.ph [...] ost=121391
Reply

Marsh Posté le 25-05-2001 à 14:22:17    

Quelles version de php as tu??
 
Sur quel serveur est tu ??


---------------
La bave du crapaud n'empèche pas la caravane de passer .
Reply

Marsh Posté le 25-05-2001 à 15:02:42    

:hello:
 
mea culpa (enfin pas vraiment) : ton code marche parfaitement :)
 
j'etais passe par un copie-colle et le fait que je sois sous Mac n'a pas du arranger les choses.
Lorsque tu m'as dit que ca passait bien chez toi, j'ai tilte :D du coup, je l'ai retape a la main et ca passe plutot ... hum .... fine :D
 
merci bcp de votre aide !!
 
par contre, connaissez vous la raison pour laquelle mon code ne passait pas ? parce qu'il me semble qu'en debuggant sur le script qui envoie les infos, ma boucle passait ...
 
m'enfin, ca marche, mais j'aimerais qd meme comprendre, histoire de progresser (on me dit tjrs que je pose des questions de debutant :lol: )


---------------
Tout ou rien mais rien que tout ! feed-back : http://forum.hardware.fr/forum2.ph [...] ost=121391
Reply

Marsh Posté le 25-05-2001 à 15:29:08    

Je pense que tu aurais du mettre tes variables sous cette forme
 
 
isset($("dn_jour_e" .$i) )


---------------
La bave du crapaud n'empèche pas la caravane de passer .
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed