comment récupérer les données d'une liste déroulante

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : comment récupérer les données d'une liste déroulante

Re: comment récupérer les données d'une liste déroulante

par Ryle » 16 juil. 2015, 08:59

Bonjour,
<form action="panier.php" method="POST">
            <label for="quantity">Quantité :</label>
            <select id="quantity" name="quantity">
Ton formulaire est envoyé via la méthode post (method) et le nom de ton champ (name) est quantity. Pour récupérer la valeur lorsque le formulaire est soumis, il te suffit donc d'utiliser la variable $_POST['quantity']. Tu obtiendras ainsi la valeur sélectionnée :)

Si jamais le formulaire n'a pas été envoyé, $_POST['quantity'] ne sera pas défini et php générera un message d'avertissement. Pour éviter cela, il suffit de tester la présence de $_POST['quantity'] avant de l'utiliser avec isSet() ou empty() ou autre.. :)

Ps : évite la syntaxe utilisant les short tags " <?= $i ?> " qui peut poser problème en fonction de la configuration du serveur et générer des conflits quand tu travailles avec du xml, ... Il faut lui préférer la syntaxe longue pour l'ouverture des balises " <?php " ... ce qui donnerait dans ce cas " <?php echo $i ?> ". C'est un peu plus long, mais ainsi ton code ne dépendra ainsi pas de la configuration du serveur sur lequel il s'exécute et c'est d'autant plus appréciable quand tu ne peux pas modifier cette configuration ;)

comment récupérer les données d'une liste déroulante

par avion » 16 juil. 2015, 01:32

Salut,

Je suis nouveau ici et j'ai un petit soucis !
J'ai une page index où j'ai une liste déroulante. Et j'aimerais que quand l'utilisateur choisit 1,2 ou 3 dans la liste déroulante, qu'il change dans la base de donnée et s'affiche dans le header .

INDEX.PHP

Code : Tout sélectionner

<?php // Header include_once "header.php"; // La requête pour récupérer : titre,decription,image $requete = $db->prepare('SELECT * FROM products'); $requete->execute(); $quantities = $requete->fetchAll(); ?><div id="main"> <?php foreach($quantities as $quantitie){ ?> <h2><?= htmlentities(strtoupper($quantitie['title']))?></h2> <img src="img/<?= $quantitie['pictures']?>" alt="tennis_logo"/> <p> <?= htmlentities($quantitie['description'])?> </p> <?php } ?> <div id="form"> <form action="panier.php" method="POST"> <label for="quantity">Quantité :</label> <select id="quantity" name="quantity"> <?php for($i = 1; $i <= 3; $i++){ ?> <option value="<?= $i ?>"><?= $i ?></option> <?php } ?> <input type="submit" value="Ajouter au panier" name="send"/> </select> </form> </div> </div> <!--Footer--> <?php include_once "footer.php";?>
HEADER.PHP

Code : Tout sélectionner

<?php //Inclusion de la dbb require_once 'inc/db.php'; //La requête pour aller chercher la quantité d'articles dans le panier. $id = !empty($_GET['id']) ? intval($_GET['id']) : 1; $requete = $db->prepare('SELECT id,items_quantity FROM products WHERE id = :id'); $requete->bindValue(':id',$id,PDO::PARAM_INT); $requete->execute(); $nbre_items = $requete->fetch(); ?><!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>wootbox : vos achats en toutes confiance</title> <meta charset="utf-8" /> <link rel="stylesheet" href="css/style.css"/> </head> <body> <div id="container"> <div id="header"> <h1>WootBox</h1> <nav id="rezo"> <ul id="rsx"> <span>Suivez-nous :</span> <a href="#facebook"><img src="img/facebook_logo.png" alt="logo_facebook"/></a> <a href="#tweet"><img src="img/twiter_logo.png" alt="logo_twiter"/></a> <a href="#pinterest"><img src="img/pinterest_logo.png" alt="logo_pinterest"/></a> <a href="#google+"><img src="img/google_plus.png" alt="logo_google+"/></a> <a href="#instagram"><img src="img/instagram_logo.png" alt="logo_instagram"/></a> </ul> <ul id="compte"> <a href="moncompte.php">Mon compte</a> <img src="img/icone_panier.jpg" alt="logo_panier"/> <a href="panier.php?id=<?= intval($nbre_items['id'])?>">Panier</a> <span><?= intval($nbre_items['items_quantity'])?></span> </ul> </nav> <ul id="suivi"> <li><a href="#" id="go_on">S'abonner</a></li> <li><a href="#">L'offrir</a></li> <li><a href="#">Les box</a></li> <li><a href="#">Les recettes</a></li> <li><a href="#">Le magazine</a></li> <li><a href="#">Soldes</a></li> </ul> </div>
PANIER.PHP

Code : Tout sélectionner

<?php //HEADER include_once "header.php"; //Définit les variables $id = !empty($_GET['id']) ? intval($_GET['id']) : 1; $items_quantity = !empty($_POST['items_quantity']) ? intval($_POST['items_quantity']) : 1; if(!empty($_POST['send'])){ $query = $db->prepare('UPDATE products SET items_quantity = :items_quantity WHERE id = :id'); // Pour chacune des variables précédées d'un : on doit faire un bindValue pour passer la valeur à la requête $query->bindValue(':items_quantity', $items_quantity, PDO::PARAM_INT); $query->bindValue('id', $id, PDO::PARAM_STR); // On execute la requête $query->execute(); } ?><div id="main"> <nav id="commande"> <hr/> <ul class="service"> <span>1</span><a href=""class="active">Votre panier</a> <span>2</span><a href="">Adresse</a> <span>3</span><a href="">Livraison</a> <span>4</span><a href="">Paiement</a> </ul> </nav> </div> <!--Footer--> <?php include_once "footer.php";?>
Quelqu'un a une idée ?