PB avec boucle For en PHP

Résolu/Fermé
Bobox87 - 24 oct. 2009 à 17:56
 Bobox87 - 24 oct. 2009 à 21:09
Bonjour,

Voilà j'ai décidé de me remettre au php mais j'ai du mal avec les boucles. Ce que je veux faire vous paraîtra sûrement très simple mais j'arrive pas à trouver !

Donc, sur ma 1ère page (index.php) je rentre un nombre qui va me servir de compteur pour créer automatiquement des champs text sur ma 2ème page (nom.php). Donc là c'est ok je rentre les noms et logiquement une fois le formulaire soumis ils devraient s'afficher sur ma 3ème page (result.php).

Mais là j'ai 2 soucis, déjà ma page result.php m'affiche un joli "Undefined index: nombre in c:\program files\easyphp1-8\www\nouveau dossier\result.php on line 6", pour éviter cette erreur j'entre une constante dans la boucle for de ma page result.php (par ex 2), mais là encore problème: ça m'affiche 2 fois le dernier nom que j'ai rentré sur la page nom.php

Voici le code de mes 3 pages:

==> Ma page index.php

<p>
Veuillez Entrer un nombre :
</p>

<form action="nom.php" method="post">
<p>
<input type="text" name="nombre" />
<input type="submit" value="Valider" />
<input type="reset" value="Annuler" />
</p>
</form>

==> Une page nom.php

<p>
Veuillez taper les noms :
</p>


<?php
for($i = 0; $i < $_POST['nombre']; $i++)
{
?>

<form action="result.php" method="post">
<p>
<input type="text" name="nom" />
</p>

<?php
}
?>
<p>
<input type="submit" value="Valider" />
<input type="reset" value="Annuler" />
</p>
</form>

==> Une page result.php

<p>
Affichage des noms :
</p>

<?php
for($i = 0; $i < $_POST['nombre']; $i++)
{
echo $_POST['nom'] . '<br />';
}
?>

Donc en gros comment réutiliser ma variable nombre sur la page result.php et comment afficher les différents noms avec une boucle ?

Un grand merci d'avance à quiconque me donnera la solution car je sèche la dessus depuis un bout de temps !

4 réponses

resalut Messages postés 784 Date d'inscription vendredi 26 juin 2009 Statut Membre Dernière intervention 21 janvier 2010 55
24 oct. 2009 à 18:21
salut,
puisque c'est un formulaire tu peux mettre ta variable dans un champ caché dans ton exemple :

<p>
Veuillez taper les noms :
</p>


<?php
for($i = 0; $i < $_POST['nombre']; $i++)
{
?>

<form action="result.php" method="post">
<p>
<input type="text" name="nom" />
</p>

<?php
}
?>
<p>
<input type="hidden" name="nombre" value="<?php echo $_POST['nombre'] ;?>" />
<input type="submit" value="Valider" />
<input type="reset" value="Annuler" />
</p>
</form>

cordialement.

2
resalut Messages postés 784 Date d'inscription vendredi 26 juin 2009 Statut Membre Dernière intervention 21 janvier 2010 55
24 oct. 2009 à 20:37
re,
oui il suffit de faire :

<?php
for($i = 0; $i < $_POST['nombre']; $i++)
{
?>

<form action="result.php" method="post">
<p>
<input type="text" name="nom<?php echo $i;?>" />
</p>

<?php
}
?>

et ds result :

<?php
for($i = 0; $i < $_POST['nombre']; $i++)
{
echo $_POST['nom'.$i] . '<br />';
}
?>
1
Merci beaucoup ça m'a résolu le problème concernant ma variable nombre. Il ne me reste plus qu'à afficher correctement les noms sur ma page result.php

Si t'as une idée n'hésite pas :)
0
Purée j'ai pas arrêté de chercher de mon côté et j'étais pas loin !
Un GRAND merci à toi :)
0