Transmettre un champs de texte par URL
etincelle
-
djflexlive Messages postés 577 Statut Membre -
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:
La ligne 173 est la ligne du lien "Ajouter".
Aidez-moi s'il vous plaît.
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:
- Transmettre un champs de texte par URL
- Url - Guide
- Texte de chanson gratuit pdf - Télécharger - Vie quotidienne
- Mettre un texte en majuscule - Guide
- Texte de barra - Guide
- Traitement de texte gratuit - Guide
7 réponses
Remplace :
Par ça :
if(isset($_POST['quantite']))
{
$qte1=$_POST['quantite'];
}
Par ça :
if (isset($_POST['quantite'])) $qte1=$_POST['quantite']; else $qte1=1;
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 :
Sauf que vérifies bien que tu récupères bien la valeur de ton formulaire précédemment posté.
$_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é.
lorsque je fais echo $qte1, ça m'affiche toujours la valeur 1.
J'ai fait un "count($_POST)" et j'ai 0.
J'ai fait un "count($_POST)" et j'ai 0.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
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.
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.
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 ;)
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 ;)
Pour donner un "dynamisme" à ton form ; un exemple serait :
Ceci est vraiment à titre d'exemple et à adapter à tes besoins.
Ensuite reste le formulaire qui fait une boucle
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
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).
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).