While ($_POST["var".$x] exist )?

Résolu/Fermé
Ucancry Messages postés 60 Date d'inscription mardi 3 juin 2008 Statut Membre Dernière intervention 17 juillet 2012 - 10 juin 2008 à 17:36
 caktus - 26 avril 2010 à 16:10
Bonjour,
J'ai un problème avec mon $_POST, voila je dispose de 3 pages PHP, la première me permet de définir un nombre d'élèves la seconde de renseigner les champ crée en fonction du nombre d'élèves choisis, et la dernière doit insérer la valeur des champs dans ma base MySql.
Seulement un j'ai un problème sur la seconde page car j'essaye de recup la valeur des champs mais ces champs peuvent varié en fonction du nombre d'élève choisi sur la première page.

Je résume:

Je choisi NbEleve=3 sur la 1ere page donc j'ai 3 champs NomEleve crée sur ma 2éme page.

J'ai nommé la valeur des champs NomEleve_$NumEleve, $NumEleve s'incrémente +1 a chaque passage dans ma boucle.

Je cherche ensuite a récupérer la valeur des mes NomEleve_$NumEleve via $_POST.

J'ai donc crée ce code sur ma 3éme page:

$xx=1;
while($_POST["NomEleve_".$xx] != null)
{
$NomEleveX=$_POST["NomEleve_".$xx];
L'insertion ici.(sup pour la lisibilité);
$xx++;
}

Ce code fonctionne relativement bien, mais le $_POST[""] != null me pose un problème, car la boucle fonctionne mais elle ne s'arrête pas.

Je m'explique :
Si je fais un echo $NomEleveX dans ma boucle j'ai bien les 3 nom de mes champs, mais une foi que $xx recoi ++ a la troisième boucle le while continue et ne reconnait pas le $_POST["NomEleve_4"] car il n'existe pas ...

Donc le php me retourne une erreur :" Undefined index: NomEleve_4 in 3émePage.php on line 42 "

Quelqu'un connais une autre syntaxe pour que mon while ne m'affiche pas cette erreur?

Merci d'avance :)
A voir également:

5 réponses

Ucancry Messages postés 60 Date d'inscription mardi 3 juin 2008 Statut Membre Dernière intervention 17 juillet 2012 2
10 juin 2008 à 18:29
Mais ce n'est pas un tableau, c'est simplement un $_POST de ma page précédente, et le probleme est que je n'arrive pas a definir la condition du while.

Enfaite je voudrai que tan que $_POST["NomEleve_".$xx] renvoie une valeur (donc pas "null") je récupère cette valeur dans une variable.

$xx=1;
while($_POST["NomEleve_".$xx] != null ou exist, quelque chose dans le genre =) )
{
   $NomEleveX=$_POST["NomEleve_".$xx];
   $PrenomEleveX=$_POST["PrenomEleve_".$xx];
   etc..
   L'insertion ici.(sup pour la lisibilité);
   $xx++;
} 
1
doctormad Messages postés 430 Date d'inscription mercredi 28 novembre 2007 Statut Membre Dernière intervention 2 avril 2015 99
10 juin 2008 à 18:09
Salut,

Pour parcourir un tablea en php foreach est + adapté

Si tu veux connaitre les clefs de ton tableau c'est array_keys

Et pour récup le numéro dans NomEleve_1 c'est explode

En résumé ;p tu fais un foreach sur les clefs que tu as récupéré
0
Ucancry Messages postés 60 Date d'inscription mardi 3 juin 2008 Statut Membre Dernière intervention 17 juillet 2012 2
10 juin 2008 à 18:39
Ha j'ai pris le blem du mauvais coté j'ai trouver =) c'était simplement:
$xx=1;
while($xx<=$NbEleve) je sais pas pourquoi je suis allé chercher aussi loin avec tan que $_POST exist ...

Comme on dits souvent pourquoi faire simple quand on peu faire compliqué ! :s
0
doctormad Messages postés 430 Date d'inscription mercredi 28 novembre 2007 Statut Membre Dernière intervention 2 avril 2015 99
11 juin 2008 à 18:06
>>Mais ce n'est pas un tableau, c'est simplement un $_POST

euh lol ? ^^
0

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

Posez votre question
Je vois que tu as mis cette question en résolu, as-tu trouvé une solution ? j'ai le même problème.. les variable $var1, $var2.. etc son bien envoyé en GET mais en test si je met $_GET['var1'] ca ne marche pas, de même avec une for avec incrémentation de $i et en recuperant les variables de cette manière : $_GET["var$i"] ou encore $_GET['var'.$i].

Merci d'avance ^^
0