Transmettre le contenu d'un champs de texte par URL

Signaler
Messages postés
10
Date d'inscription
dimanche 4 octobre 2009
Statut
Membre
Dernière intervention
27 mai 2010
-
Messages postés
34
Date d'inscription
mardi 29 avril 2008
Statut
Membre
Dernière intervention
16 août 2011
-
Bonsoir,

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> <?php echo $row["identifiant"] ?> </td>
    <td><?php echo $row["designation"] ?></td>
    <td> 
  <?php
  if(isset($_POST['quantite']))
{
  $qte1 =$_POST['quantite'];
 	
  }

   ?>
   </td>
   <td>[ajouter_commande.php?qte=<?php echo $qte1;?>&ajouter=<?php echo $row['identifiant'];?> Ajouter]</td>



Aidez-moi s'il vous plaît.

8 réponses

Messages postés
3706
Date d'inscription
lundi 5 juillet 2004
Statut
Membre
Dernière intervention
27 avril 2012
30
Salut,

Pense à indiquer clairement la ligne de l'erreur (173)
J'imagine que $_POST['quantite'] n'est pas défini.

Pour le reste il faudrait en connaitre plus.


Cordialement,



Kohntark -
Messages postés
10
Date d'inscription
dimanche 4 octobre 2009
Statut
Membre
Dernière intervention
27 mai 2010

Pardon, la ligne de l'erreur est la ligne du lien "ajouter".

Comment définir $_POST['quantite']?
Messages postés
3706
Date d'inscription
lundi 5 juillet 2004
Statut
Membre
Dernière intervention
27 avril 2012
30
Comment définir $_POST['quantite']?

Heu, bah ça toi seule peut le savoir. C'est une variable qui provient de ton formulaire; je ne peux pas deviner à quoi elle correspond.

Il y a de toute façon un problème dans ton script :
Tu testes bien l'existence de $_POST['quantite'] mais si elle n'existe pas rien n'est prévue => donc erreur sur la ligne du lien.

Je re :
Pour le reste il faudrait en connaitre plus.



Cordialement,


Kohntark -
Messages postés
10
Date d'inscription
dimanche 4 octobre 2009
Statut
Membre
Dernière intervention
27 mai 2010

J'ai essayé avec ce code là:
<?php 
if(isset($_POST['quantite'])) {
    $qte=$_POST['quantite'];
} else {
    $qte=1;
}
echo $qte;



Mais ça m'affiche toujours la valeur 1.

Voici le formulaire en entier:
<form name="form2" method="post" action="catalogue.php">
Identifiant ,
Désignation ,
Quantité,
Ajouter?,

<?php

$host = 'localhost';
$user = 'root';
$pass = '';
$db1 = 'mabase';

// connection à la DB
$link = mysql_connect ($host,$user,$pass) ;
mysql_select_db($db1) ;

$select = \"SELECT * FROM produits\";

$result = mysql_query($select,$link) or die ('Erreur : '.mysql_error() );

while($row = mysql_fetch_array($result)) {
?>

----

<?php echo $row["identifiant"] ?>,
<?php echo $row["designation"] ?>,
,

<?php
if(isset($_POST['quantite'])) {
$qte=$_POST['quantite'];
} else {
$qte=1;
}
?>

&ajouter=<?php echo $row["identifiant"];?>" title="Ajouter à la commande">Ajouter,

<?php
}
?>

</form>
Messages postés
3706
Date d'inscription
lundi 5 juillet 2004
Statut
Membre
Dernière intervention
27 avril 2012
30
Ton formulaire ne risque pas d'être soumis puisqu'il n'y a pas de bouton submit.


Kohntark -
Messages postés
10
Date d'inscription
dimanche 4 octobre 2009
Statut
Membre
Dernière intervention
27 mai 2010

J'ai fait ça:
<td>[ajouter_commande.php?qte=<?php echo $qte;?>&ajouter=<?php echo $row[ " title="Ajouter à la commande" onclick ="form2.submit">Ajouter]</td>

mais j'ai toujours la valeur 1 pour la quantité.
Messages postés
3706
Date d'inscription
lundi 5 juillet 2004
Statut
Membre
Dernière intervention
27 avril 2012
30
je me demande bien pourquoi tu cherches à envoyer à la fois des données POST et GET. Il y a sans doute un pb de logique là.

Passe donc tout en POST, et si tu veux vraiment utiliser un lien plutôt qu'un bouton, écrit le comme cela :
[# Ajouter]



Kohntark -
Messages postés
34
Date d'inscription
mardi 29 avril 2008
Statut
Membre
Dernière intervention
16 août 2011
2
Non en fait c'est normal que tu reçoive toujours une valeur $qte = 1 car ton script ne récupère pas la valeur de $qte.

Il te faudrait un script du type :
<form name="form2" method="post" action="#">
Identifiant ,
Désignation ,
Quantité,
Ajouter?,

<?php

$host = 'localhost';
$user = 'root';
$pass = '';
$db1 = 'mabase';

// connection à la DB
$link = mysql_connect ($host,$user,$pass) ;
mysql_select_db($db1) ;

$select = \"SELECT * FROM produits\";

$result = mysql_query($select,$link) or die ('Erreur : '.mysql_error() );

while($row = mysql_fetch_array($result)) {
?>

----

<?php echo $row["identifiant"] ?>,
<?php echo $row["designation"] ?>,
,

<?php
if(isset($_POST['quantite'])) {
$qte=$_POST['quantite'];
?>
&ajouter=<?php echo $row[\"identifiant\"];?>\" title=\"Ajouter à la commande\">Ajouter
<?
} else {
$qte=1;
}
?>

Ajouter,

<?php
}
?>

</form>


J'ai repris par ton code. Test le et là et dit moi