Rechercher : dans
Par :

[PHP] Boucle for et nom de variable !

Dernière réponse le 10 nov 2008 à 18:05:13 elsadelatoundra, le 25 oct 2006 à 09:37:23 
 Signaler ce message aux modérateurs

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 !!

ellessa mange des cerises

Meilleures réponses pour « [PHP] Boucle for et nom de variable ! » dans :
Comment lire un fichier ligne par ligne VoirComment lire un fichier ligne par ligne Préambule Boucle while Syntaxe Exemple Astuces Bonus Boucle for Syntaxe Préambule Une des erreurs les plus communes dans l'apprentissage des scripts "bash" sous GNU/LInux pour lire un fichier...
PHP - Structures conditionnelles VoirQu'est-ce qu'une structure conditionnelle? On appelle structure conditionnelle les instructions qui permettent de tester si une condition est vraie ou non, c'est-à-dire si la valeur de son expression vaut 0 ou 1 (le PHP associe le mot clé true à 1...
PHP - Les variables d'environnement VoirNotion de variable d'environnement Les variables d'environnement sont, comme leur nom l'indique, des données stockées dans des variables permettant au programme d'avoir des informations sur son environnement. L'environnement, dans le cas du script...
Langage C - Les variables VoirLe concept de variable Une variable est un objet repéré par son nom, pouvant contenir des données, qui pourront être modifiées lors de l'exécution du programme. Les variables en langage C sont typées, c'est-à-dire que les données contenues dans...

1

kij_82, le 25 oct 2006 à 09:45:42

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;
}

~ iclic @ gauch,iclic, iclic @ droate, iclic, iclic
et ya pas de bôg môsieu ! ~

Répondre à kij_82

2

elsadelatoundra, le 25 oct 2006 à 09:48:56

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 ...

ellessa mange des cerises

Répondre à elsadelatoundra

3

kij_82, le 25 oct 2006 à 09:54:39

Ton probleme vient donc bien du nommage de tes inputs :)

Met voir ton code.

~ iclic @ gauch,iclic, iclic @ droate, iclic, iclic
et ya pas de bôg môsieu ! ~

Répondre à kij_82

4

elsadelatoundra, le 25 oct 2006 à 09:56:34

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
ellessa mange des cerises

Répondre à elsadelatoundra

5

elsadelatoundra, le 25 oct 2006 à 10:01:03

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 !!

ellessa mange des cerises

Répondre à elsadelatoundra

6

kij_82, le 25 oct 2006 à 10:03:24

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."'"] ;
~ iclic @ gauch,iclic, iclic @ droate, iclic, iclic
et ya pas de bôg môsieu ! ~

Répondre à kij_82

7

kij_82, le 25 oct 2006 à 10:06:50

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. ~ iclic @ gauch,iclic, iclic @ droate, iclic, iclic
et ya pas de bôg môsieu ! ~

Répondre à kij_82

9

elsadelatoundra, le 25 oct 2006 à 10:09:47

Si si j'ai une boucle ... la même quand dans mon deuxième script : for($i=0; $i < 7 ; $i++) ...
ellessa mange des cerises

Répondre à elsadelatoundra

8

elsadelatoundra, le 25 oct 2006 à 10:08:27

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 ...

ellessa mange des cerises

Répondre à elsadelatoundra

10

elsadelatoundra, le 25 oct 2006 à 10:12:01

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 !!

ellessa mange des cerises

Répondre à elsadelatoundra

11

kij_82, le 25 oct 2006 à 10:12:06

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

~ iclic @ gauch,iclic, iclic @ droate, iclic, iclic
et ya pas de bôg môsieu ! ~

Répondre à kij_82

12

elsadelatoundra, le 25 oct 2006 à 10:14:23

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à !!

ellessa mange des cerises

Répondre à elsadelatoundra

13

kij_82, le 25 oct 2006 à 10:17:34

Oui en effet (un temps de décalage ^^)

Et si tu fais simplement : $_POST["$post"] ?
~ iclic @ gauch,iclic, iclic @ droate, iclic, iclic
et ya pas de bôg môsieu ! ~

Répondre à kij_82

15

elsadelatoundra, le 25 oct 2006 à 10:20:40

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 !

;-)

ellessa mange des cerises

Répondre à elsadelatoundra

14

kij_82, le 25 oct 2006 à 10:19:33

echo "<BR>- CHARGE_HH_".$i." = ";
echo $_POST["$post"];


Non ?
~ iclic @ gauch,iclic, iclic @ droate, iclic, iclic
et ya pas de bôg môsieu ! ~

Répondre à kij_82

16

kij_82, le 25 oct 2006 à 10:21:37

Ou sinon :

echo $_POST->{"CHARGES_HH_".$i}
~ iclic @ gauch,iclic, iclic @ droate, iclic, iclic
et ya pas de bôg môsieu ! ~

Répondre à kij_82

17

elsadelatoundra, le 25 oct 2006 à 10:23:58

LOL !! On poste en même temps !

Je t'avais déjà répondu (message <15>) et c'était pour te dire que ça marche !!!

Merci ...

ellessa mange des cerises

Répondre à elsadelatoundra

18

kij_82, le 25 oct 2006 à 10:39:00

De rien ^^
~ iclic @ gauch,iclic, iclic @ droate, iclic, iclic
et ya pas de bôg môsieu ! ~

Répondre à kij_82

19

 magy91, le 10 nov 2008 à 18:05:13

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

Répondre à magy91