Récupérer la valeur d'un input dans ma boucle while

Résolu/Fermé
gretin Messages postés 6 Date d'inscription mardi 6 mai 2014 Statut Membre Dernière intervention 13 juin 2015 - 6 mai 2014 à 20:56
 Utilisateur anonyme - 7 mai 2014 à 16:45
Bonjour,

je souhaiterais récupérer une valeur d'un input type number générer dans une boucle while (vers la fin du code).Il m'affiche seulement la dernière valeur de ma variable. J'ai cherché dans de nombreux forums (ici également) et voulu faire un tableau mais je n'y ai pas trouvé mon bonheur.
il faudrait que je récupère la variable "quant_prod" dans ce code le reste fonctionne) : merci d'avance pour votre aide et pour votre compréhension.
<html>

<head>
<title>site</title>
<?php $map->printHeaderJS(); ?>
<?php $map->printMapJS(); ?>
</head>
<?php echo"<h3>Nom de la Boutique : ".$nom_boutique."</h3>";?>
<?php echo"<strong>L'adresse de la boutique : </strong>".$adresse_boutique;?><br/>
<?php echo"Description de ".$nom_boutique." : ".$description_boutique; ?>
<body onload="onLoad();">
<h3>Les produits dans la boutique</h3>
<?php
//on récupère la liste des produits dans cette boutique
$lastid = mysql_query("SELECT id FROM commercant WHERE id='$name'");
$prod = mysql_query("SELECT * FROM produits WHERE nom_bout='$nom_boutique'");
while ($donneesid = mysql_fetch_array($lastid))
{
if(mysql_num_rows($prod)!=0)
{//on compte combien de nom boutique il ya dans la table produit
$comptnombout = mysql_query("SELECT nom_bout FROM produits WHERE nom_bout='$nom_boutique'");

while ($nom_boutique = mysql_fetch_array($comptnombout))//on affiche la liste des produits dans la boutique au client
{
while ($donnesprod = mysql_fetch_array($prod))
{
echo"
<form action='' method='POST'>
<strong>Nom du produit :
</strong>".$donnesprod['nom_prod']."<br/>
<strong>Quantitée restante : </strong>".$donnesprod['quantité']."<br/>
<strong>Prix du produit : </strong>".$donnesprod['prix']."<br/>
<strong>Quantitée choisie : </strong><input type='number' value='1' min='1' max='".$donnesprod['quantité']."' name='quant_prod' id='quant_prod'><br/>
<br/>";

if(isset($_POST['submit']))
{
echo $_POST['quant_prod'];
}
}
}
echo "<input type='submit' value='Commander les produits' name='submit'><br/><br/></form>";
}
else
{
echo "Il n'y a aucun Produits dans la boutique";
}
}
$map->printMap(); ?>
</body>

</html>

4 réponses

Utilisateur anonyme
7 mai 2014 à 14:37
Je crois que ton problème c'est que tu fais plusieurs champs inputs qui ont tous le même attribut 'name'. Au moment où tu 'submit' ton formulaire, le navigateur ne sait pas lequel choisir.

Au pire, essaie de mettre
name='quant_prod[]'
, et dis moi si ça marche.

Mais je pense que le plus simple consiste à numéroter tes name. un truc du genre


name='quant_prod_<?php echo $i; ?>'
$i ++;

et après tu récupère tes inputs en faisant

$_POST['quant_prod_0']
$_POST['quant_prod_1']
$_POST['quant_prod_2']
...

dans une boucle.

ça te va ?
1
gretin Messages postés 6 Date d'inscription mardi 6 mai 2014 Statut Membre Dernière intervention 13 juin 2015
7 mai 2014 à 15:51
merci beaucoup Poyoman ta réponse m'a entièrement satisfait finalement ce n'étais pas grand chose.
j'ai fait une boucle :

if(isset($_POST['submit']))
{
$nbrprod = mysql_num_rows($comptnombout);
for($i=0;$i<$nbrprod; $i++)
{
echo $_POST['quant_prod_'.$i.''];
}
}
et elle fonctionne à merveille.
merci encore :)
1
Utilisateur anonyme
7 mai 2014 à 16:45
De rien :) Ravi de t'avoir aidé
0
gretin Messages postés 6 Date d'inscription mardi 6 mai 2014 Statut Membre Dernière intervention 13 juin 2015
7 mai 2014 à 14:13
je souhaite pouvoir récupérer la variable 'quant_prod' de mon input (peut-être en faisant un tableau mais dans ce cas comment?):

<?php while ($donnesprod = mysql_fetch_array($prod))
{
echo"
<strong>Nom du produit : </strong>".$donnesprod['nom_prod']."<br/><strong>Quantité restant : </strong>".$donnesprod['quantité']."<br/><strong>Prix du produit</strong>".$donnesprod['prix']."<br/>

<form action='' method='POST'><strong>Quantité choisie :</strong><input type='number' value='0' min='0' max='".$donnesprod['quantité']."' name='quant_prod' id='quant_prod'><br/><br/>";

if(isset($_POST['submit']))
{
echo $_POST['quant_prod'];
}
}
echo "<input type='submit' value='Commander les produits' name='submit'><br/><br/></form>";?>
0
Utilisateur anonyme
7 mai 2014 à 00:18
Qu'entend tu par "la fin du code" ?

peux-tu nous fournir le HTML produit par ton code ?


PS : as tu pensé à un input "range" plutôt que number ?
-1