Transmettre un champs de texte par URL

etincelle -  
djflexlive Messages postés 577 Statut Membre -
Bonjour,

Je suis entrain de faire un panier virtuel.
Dans ma page "catalogue.php", j'affiche le contenu d'une table dans un tableau contenant les champs: identifiant, désignation, quantité et ajouter.
La colonne "quantité" contient un champs de texte où on insère la quantité voulue.
Et la colonne "ajouter" comporte des liens "Ajouter" qui mènent vers la page "ajouter_produit.php" pour faire des traitements après.
Le lien "ajouter" permet de transmettre deux paramètres par l'URL: l'identifiant et la quantité.
L'identifiant est transmis sans problème, mais j'ai l'erreur suivante au niveau de la quantité:

Notice: Undefined variable: qte1 in C:\wamp\www\Nouveau dossier\catalogue.php on line 173

Voici une partie de mon code de la page catalogue.php:

while($row = mysql_fetch_array($result)) {
	?>
		
	  <tr> 
	    
	   <td><b><?php echo $row["identifiant"] ?></b></td>
    <td><b><?php echo $row["designation"] ?></b></td>
    <td><b> <input name="quantite" type="text">
  <?php
	  if(isset($_POST['quantite']))
		{
		  $qte1=$_POST['quantite'];
		 	
		  }
	
	   ?>
	   </b></td>
		   <td><b><a href="ajouter_commande.php?qte=<?php echo $qte1;?>&ajouter=<?php echo $row['identifiant'];?>" title="Ajouter à la commande">Ajouter</a></b></td>
 
 


La ligne 173 est la ligne du lien "Ajouter".

Aidez-moi s'il vous plaît.
A voir également:

7 réponses

ghuysmans99 Messages postés 2496 Date d'inscription   Statut Contributeur Dernière intervention   340
 
Remplace :
	  if(isset($_POST['quantite']))
		{
		  $qte1=$_POST['quantite'];
		 	
		  }

Par ça :
if (isset($_POST['quantite'])) $qte1=$_POST['quantite']; else $qte1=1;

0
etincelle
 
Merci pour ta réponse, mais j'ai toujours la même erreur.
0
djflexlive Messages postés 577 Statut Membre 95
 
Dans ton cas on dirait que tu ne récupères pas la quantité en question.

$_POST['quantite'] existes mais est vide donc à remplacer par :

if ( !empty($_POST['quantite'])) $qte1=$_POST['quantite']; else $qte1=1;


Sauf que vérifies bien que tu récupères bien la valeur de ton formulaire précédemment posté.
0
etincelle
 
lorsque je fais echo $qte1, ça m'affiche toujours la valeur 1.

J'ai fait un "count($_POST)" et j'ai 0.
0

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

Posez votre question
djflexlive Messages postés 577 Statut Membre 95
 
J'avais mal regardé ton code mais il y'a un hic... Ton champs 'quantite' est répété autant de fois que tu as d'items dans ta boucle while ...

Et un même formulaire ne peux comporter deux champs avec le même nom ...

Il te faut un nom de champs "quantite" différent pour chaque produit et les récupérer ensuite.
0
etincelle
 
Merci djflexlive, je m'en doutais que ça a un rapport avec le fait qu'il y a plusieurs champs de texte.

Maintenant le problème est comment donner un nom différent pour chaque champs étant donné que j'ai un tableau dynamique.

Je vais réfléchir sur ce problème et pendant ce temps, toute aide sera la bienvenue ;)
0
djflexlive Messages postés 577 Statut Membre 95
 
Pour donner un "dynamisme" à ton form ; un exemple serait :

while ( $row = mysql_fetch_array($result) ) {
echo $row['identifiant'].'<input type="text" name="quantite_'.$row['id'].'"/>
}


Ceci est vraiment à titre d'exemple et à adapter à tes besoins.
Ensuite reste le formulaire qui fait une boucle
foreach ($_POST as $key=>$value) 
à faire pour récupérer tous les inputs générés à la volée.

Ce que je piges pas est que l'input que tu as au niveau de ta boucle peut contenir un $_POST ; mais qui vient d'où ? Puis où se termine ta boucle while ? Je ne vois pas la fin dans ton code.

Et également comment tu veux transmettre la valeur de ton input si tu fais
ajouter_commande.php?qte=<?php echo $qte1;?> 


T'aura beau rentrer n'importe quelle valeur dans ton input du while ; cette valeur ne sera pas transmise (et au passage là ; tu vas faire un $_GET pour la page d'apres).
0