Récupérer la valeur d'un input dans ma boucle while [Résolu/Fermé]

Signaler
Messages postés
6
Date d'inscription
mardi 6 mai 2014
Statut
Membre
Dernière intervention
13 juin 2015
-
 Utilisateur anonyme -
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


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
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 76687 internautes nous ont dit merci ce mois-ci

Messages postés
6
Date d'inscription
mardi 6 mai 2014
Statut
Membre
Dernière intervention
13 juin 2015

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
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 76687 internautes nous ont dit merci ce mois-ci

Utilisateur anonyme
De rien :) Ravi de t'avoir aidé
Messages postés
6
Date d'inscription
mardi 6 mai 2014
Statut
Membre
Dernière intervention
13 juin 2015

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>";?>

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 ?