[PHP] Boucle for et nom de variable !

Résolu/Fermé
elsadelatoundra
Messages postés
126
Date d'inscription
mercredi 13 septembre 2006
Statut
Membre
Dernière intervention
3 juillet 2008
- 25 oct. 2006 à 09:37
magy91
Messages postés
69
Date d'inscription
vendredi 16 janvier 2004
Statut
Membre
Dernière intervention
4 janvier 2011
- 10 nov. 2008 à 18:05
Bonjour ...

J'ai 7 inputs portant les noms suivants :

CHARGES_HH0
CHARGES_HH1
CHARGES_HH2
CHARGES_HH3
CHARGES_HH4
CHARGES_HH5
CHARGES_HH6

Je vous rassure, c'est construit à l'aide d'une boucle for !!

Je suis dans un formulaire method='post' et je veux récupérer ces valeurs dans un autre formulaire... je voudrais le faire à l'aide d'une boucle for mais je n'y arrive pas du tout !!

Si quelqu'un a une idée, il me sauve la vie !

Moi j'avais pensé à faire quelque chose de ce style :
for($i=0; $i < 7 ; $i++){
	$post="CHARGES_HH$i"; 
	echo"$i :<BR>- CHARGE_HH = ".$_POST[."'$post'".];
}
et à plein d'autre chose, mais rien de tout ce que j'ai pu essayer ne marche ...

Je vous remercie d'avance pour votre aide qui me sera très précieuse !!

11 réponses

elsadelatoundra
Messages postés
126
Date d'inscription
mercredi 13 septembre 2006
Statut
Membre
Dernière intervention
3 juillet 2008
14
25 oct. 2006 à 10:01
modifConso.php
echo"<form action='enregistrementConso.php' method='post'>";
echo"<select name='CHARGES_HH_".$i."' class='form_text'>";
for($j=0; $j <= 9 ; $j++){
echo"<option value='0".$j."'>0".$j."</option>";
echo"\n";
}
echo"<option value='10'>10</option>";
echo"</select>";


enregistrementConso.php
for($i=0; $i < 7 ; $i++){
	$post= "'CHARGES_HH_".$i."'";
	echo$post;
if ( isset ($_POST[$post]) )
       echo "<BR>- CHARGES_HH_".$i." = ".$POST[$post];
else
        echo "probleme pour CHARGE ".$i;
}

echo"<BR>".$_POST['CHARGES_HH_0'];

Le pire c'est que si je fais ça :
$i=1;
foreach ($_POST as $clef){
	echo"Clef N° ".$i." = ".$clef."<br>";
	$i++;
}

... je peux voir tous mes posts !!

Je ne sais pas si mon code t'écalire mais c'est très gentil de ta part de te pencher sur mon problème !!
1
kij_82
Messages postés
4088
Date d'inscription
jeudi 7 avril 2005
Statut
Contributeur
Dernière intervention
30 septembre 2013
856
25 oct. 2006 à 09:45
Ca devrait marcher normalement.

Et si tu met ce code, ca te marque quoi ?
for($i=0; $i < 7 ; $i++){
	$post= "CHARGES_HH".$i; 
if ( isset ($_POST[$post]) )
       echo "<BR>- CHARGE_HH".$i." = ".$POST[$post];
else
        echo "probleme pour CHARGE ".$i;
}

0
elsadelatoundra
Messages postés
126
Date d'inscription
mercredi 13 septembre 2006
Statut
Membre
Dernière intervention
3 juillet 2008
14
25 oct. 2006 à 09:48
Ca me met : probleme pour CHARGE 0probleme pour CHARGE 1probleme pour CHARGE 2probleme pour CHARGE 3probleme pour CHARGE 4probleme pour CHARGE 5probleme pour CHARGE 6

Mince alors ...
0
kij_82
Messages postés
4088
Date d'inscription
jeudi 7 avril 2005
Statut
Contributeur
Dernière intervention
30 septembre 2013
856
25 oct. 2006 à 09:54
Ton probleme vient donc bien du nommage de tes inputs :)

Met voir ton code.

0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
elsadelatoundra
Messages postés
126
Date d'inscription
mercredi 13 septembre 2006
Statut
Membre
Dernière intervention
3 juillet 2008
14
25 oct. 2006 à 09:56
Je viens de tester ça mais ça ne marche pas non plus ...
for($i=0; $i < 7 ; $i++){
	$post= "'CHARGES_HH_".$i."'";
	echo$post;
if ( isset ($_POST[$post]) )
       echo "<BR>- CHARGES_HH_".$i." = ".$POST[$post];
else
        echo "probleme pour CHARGE ".$i;
}

echo"<BR>".$_POST['CHARGES_HH_0'];

En retour j'ai ça :
'CHARGES_HH_0'probleme pour CHARGE 0'CHARGES_HH_1'probleme pour CHARGE 1'CHARGES_HH_2'probleme pour CHARGE 2'CHARGES_HH_3'probleme pour CHARGE 3'CHARGES_HH_4'probleme pour CHARGE 4'CHARGES_HH_5'probleme pour CHARGE 5'CHARGES_HH_6'probleme pour CHARGE 6
10

et 10 correspond bien à ce que j'ai écrit dans mon premier formulaire !!

C'est à n'y rien comprendre et je ne comprends rien !!

:S
0
kij_82
Messages postés
4088
Date d'inscription
jeudi 7 avril 2005
Statut
Contributeur
Dernière intervention
30 septembre 2013
856
25 oct. 2006 à 10:03
Oups, autant pour moi, remplace :
if ( isset ($_POST[$post]) )
       echo "<BR>- CHARGES_HH_".$i." = ".$POST[$post];


par :

if ( isset ($_POST['$post']) )
       echo "<BR>- CHARGES_HH_".$i." = ".$POST['$post'];


ou

if (isset ( $_POST["'".$post."'"] ) )
      echo "<BR>'CHARGE_HH_".$i." = ".$_POST["'".$post."'"] ;
0
kij_82
Messages postés
4088
Date d'inscription
jeudi 7 avril 2005
Statut
Contributeur
Dernière intervention
30 septembre 2013
856
25 oct. 2006 à 10:06
echo"<form action='enregistrementConso.php' method='post'>";
echo"<select name='CHARGES_HH_".$i."' class='form_text'>";
for($j=0; $j <= 9 ; $j++){
echo"<option value='0".$j."'>0".$j."</option>";
echo"\n";
}
echo"<option value='10'>10</option>";
echo"</select>";


Il te manque pas une boucle là par hasard ?!

Ton $i fait référence a quoi ?

Met moi tout.
0
elsadelatoundra
Messages postés
126
Date d'inscription
mercredi 13 septembre 2006
Statut
Membre
Dernière intervention
3 juillet 2008
14
25 oct. 2006 à 10:09
Si si j'ai une boucle ... la même quand dans mon deuxième script : for($i=0; $i < 7 ; $i++) ...
0
elsadelatoundra
Messages postés
126
Date d'inscription
mercredi 13 septembre 2006
Statut
Membre
Dernière intervention
3 juillet 2008
14
25 oct. 2006 à 10:08
Bouh ... aucun des deux !!

if ( isset ($_POST['$post']) )
       echo "<BR>- CHARGES_HH_".$i." = ".$POST['$post'];

Les simples quotes autour de $post empêchent son interprétation donc ça ne marche pas ...

Et dans le second cas, je ne sais pas ce qui ne marche pas mais j'ai toujours un problème d'interprétation et donc je suis toujours dans le else ...
0
elsadelatoundra
Messages postés
126
Date d'inscription
mercredi 13 septembre 2006
Statut
Membre
Dernière intervention
3 juillet 2008
14
25 oct. 2006 à 10:12
Le pire c'est quand je fais ça :
echo"<BR>".$_POST['CHARGES_HH_0'];
echo"<BR>".$_POST['CHARGES_HH_1'];
echo"<BR>".$_POST['CHARGES_HH_2'];
echo"<BR>".$_POST['CHARGES_HH_3'];
echo"<BR>".$_POST['CHARGES_HH_4'];
echo"<BR>".$_POST['CHARGES_HH_5'];
echo"<BR>".$_POST['CHARGES_HH_6'];

Je récupère tous mes posts !!
10
05
04
05
06
06
Notice: Undefined index: CHARGES_HH_6 in c:\program files\easyphp1-8\www\eas_emo\enregistrementconso.php on line 67

Sauf le dernier mais c'est normal ... y a un if qui l'a empêché de se créer !!
0
kij_82
Messages postés
4088
Date d'inscription
jeudi 7 avril 2005
Statut
Contributeur
Dernière intervention
30 septembre 2013
856
25 oct. 2006 à 10:12
T'as donc un truc qui ressemble a ca dans ton form :

echo"<form action='enregistrementConso.php' method='post'>";
for ($i=0; $i < 7; $i++){
	echo"<select name='CHARGES_HH_".$i."' class='form_text'>";
	for($j=0; $j <= 9 ; $j++){
		echo"<option value='0".$j."'>0".$j."</option>";
		echo"\n";
	}
	echo"<option value='10'>10</option>";
	echo"</select>";
}
echo "<input type='submit' value='go!'>";
echo "</form>";


si je comprends bien...

Je vois pas trop ce qui peut clocher, et je suis pas chez moi là donc j'ai pas l'environnement pour faire des tests et débugger :s

0
elsadelatoundra
Messages postés
126
Date d'inscription
mercredi 13 septembre 2006
Statut
Membre
Dernière intervention
3 juillet 2008
14
25 oct. 2006 à 10:14
Je ne pense pas que ce soit un problème dans mon premier script vu que j'arrive à les récup sans boucle for ... Donc ils se créent, se font poster mais c'est dans ma boucle d'affichage des posts que ça bugge !!

Regarde le message <10> ... je pense qu'on a posté en même temps ... les posts sont là !!
0
kij_82
Messages postés
4088
Date d'inscription
jeudi 7 avril 2005
Statut
Contributeur
Dernière intervention
30 septembre 2013
856
25 oct. 2006 à 10:17
Oui en effet (un temps de décalage ^^)

Et si tu fais simplement : $_POST["$post"] ?
0
elsadelatoundra
Messages postés
126
Date d'inscription
mercredi 13 septembre 2006
Statut
Membre
Dernière intervention
3 juillet 2008
14 > kij_82
Messages postés
4088
Date d'inscription
jeudi 7 avril 2005
Statut
Contributeur
Dernière intervention
30 septembre 2013

25 oct. 2006 à 10:20
CHARGE_HH_0 = 10
CHARGE_HH_1 = 05
CHARGE_HH_2 = 04
CHARGE_HH_3 = 05
CHARGE_HH_4 = 06
CHARGE_HH_5 = 06
probleme pour CHARGE 6

ça me dit ce que je voulais entendre !!

Merci beaucoup pour ton aide !

;-)
0
kij_82
Messages postés
4088
Date d'inscription
jeudi 7 avril 2005
Statut
Contributeur
Dernière intervention
30 septembre 2013
856
25 oct. 2006 à 10:19
echo "<BR>- CHARGE_HH_".$i." = ";
echo $_POST["$post"];


Non ?
0
kij_82
Messages postés
4088
Date d'inscription
jeudi 7 avril 2005
Statut
Contributeur
Dernière intervention
30 septembre 2013
856
25 oct. 2006 à 10:21
ou sinon :
echo $_POST->{"CHARGES_HH_".$i}
0
magy91
Messages postés
69
Date d'inscription
vendredi 16 janvier 2004
Statut
Membre
Dernière intervention
4 janvier 2011

10 nov. 2008 à 18:05
bonjour

Je me suis inspiré de ton code pour l'utiliser dans mon formulaire. Par contre je n'arrive pas à récupérer les données pour les envoyer dans ma table. Mon problème est comment récupérer les données, faut-il aussi faire une boucle?

Merci d'avance
0