Recuperer variable variable dans input text

Fermé
MOULEFRITE - 21 avril 2009 à 10:33
 MOULEFRITE - 21 avril 2009 à 21:40
Bonjour, je ne parviens pas à récupérer ma variable, quand j'appuie sur submit => variable nondéfinie alors quel est dans la boucle input text name="'.${'nombre'.$x}.'"
voici le code merci à qui pourras m'aider...

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head>

</head>
<form method="post">
<body>

<?php
if(isset($_POST['valider']))
{ $cnt=5 ;
for($x=0;$x<$cnt;$x++) {
$nombre='' ;
$nombre.=$_POST[${'nombre'.$x}];//on recupere via la methode post ET JE NE RECUPERE RIEN QUI PEUT M'AIDER ? ECHO=RIEN
echo $nombre."ee" ;
}
}

else { //si pas encore appui sur le submit valider
mysql_connect("localhost", "root", ""); // Connexion à MySQL
mysql_select_db("bdfete"); // Sélection de la base
$reponse = mysql_query("SELECT * FROM tabbfpoisson");
mysql_close(); // Déconnexion de MySQL

?>
<table style="text-align: left; width: 100%;" border="1" cellpadding="2" cellspacing="2">
<caption>Buffet poisson</caption>


<?php
$x=''; //variable de boucle
$chk=''; //variable echo checkbox
$plmo=''; // variable echo text 100%
while ($donnees = mysql_fetch_array($reponse) ) //boucle tab buffet poisson
{ ${'nombre'.$x}=""; //VARIABLE POST QUE JE NE RECUPERE PAS

?>
<tr>
<td><?php $chk= '<input type="checkbox" name="select['.$x.']"';
if($donnees['checkclassic']== "checked" ) $chk.=' checked';
echo $chk ; ?></td>
<td><?php echo $donnees['nomplat']; ?></td>

<td><?php $plmo='<input size="2" name="'.${'nombre'.$x}.'" value='.$donnees['quantite'].' type="text"/>';//BOUCLE DE LA VARIABLE
echo $plmo ; ?></td>
<td><?php echo $donnees['quantite']." ".$donnees['unite']; ?> </td>
<td> <?php echo $donnees['commentaire']; ?> </td>
</tr>

<?php

$x++ ;
}

}
?>
Nombre d'adulte = <input size="2" name="nbradulte" value="40" type="text"/>
<input type="submit" name="valider" value=" VALIDER "/>
</form>
</table>
</body>
</html>
A voir également:

1 réponse

Bonjour

Non, la variable de ton formulaire ne s'appelle pas 'nombre0', 'nombre1' , etc...
Tu dois bien t'en rendre compte avec le echo $plmo.
Quand tu mets que le nom du champ input est ${'nombre'.$x}, cette expression est remplacée par la valeur de la variable. Par exemple, si $x=0 et $nombre0 vaut 5, ton champ input se retrouve avec name="5" et non pas name="$nombre0"
En fait il faudrait :
$plmo='<input size="2" name="nombre'.$x.'" value='.$donnees['quantite'].' type="text"/>';
1
Merci pour ta réponse bien utile...; J'ai remplacé le ligne input par : $plmo='<input size="2" name="nombre'.$x.'" value='.$donnees['quantite'].' type="text"/>'; mais mes variables reste indéfinie après avoir validé

Notice: Undefined variable: nombre0 in C:\wamp\www\test\form.php on line 13

Notice: Undefined index: in C:\wamp\www\test\form.php on line 13
ee
Notice: Undefined variable: nombre1 in C:\wamp\www\test\form.php on line 13

Notice: Undefined index: in C:\wamp\www\test\form.php on line 13
ee
etc...je continue de chercher...
0
Ok j'ai récupéré mes valeur avec un : foreach($_POST as $nombre=> $value){
encore merci pour ta réponse yououuuuuuuu !
0