Post id et nom dans 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 : Post id et nom dans liste déroulante

Re: Post id et nom dans liste déroulante

par Ryle » 10 févr. 2015, 12:26

Les options d'un select sont constituées de deux éléments :
- la valeur (attribut value) qui est transmise par le navigateur lorsque le formulaire est soumit
- le libellé (placé entre les balises <option>) qui n'est pas transmit par le navigateur (*)

(*) en l'occurrence, certains navigateurs le transmettent en cas d'absence de l'attribut value, mais mieux vaut ne pas compter la dessus :)

Du coup, il y a plusieurs solutions possible. Tu peux, comme évoqué par Megadeth, récupérer l'id passé dans l'attribut value et l'utiliser pour retrouver le libellé associé (avec une requête SQL, une information en session, ...) ou tu peux concatener plusieurs informations dans l'attribut value, en utilisant un séparateur (point-virgule, pipe, ... ex : value="id|libelle|...")

Le premier cas est le plus simple et n'affecte pas ton traitement. Le second t'oblige alors à retravailler la valeur transmise par le formulaire pour dissocier chacune des informations soumises (avec explode() par exemple) et exploiter l'id d'un côté et le libellé de l'autre

Re: Post id et nom dans liste déroulante

par Megadeth » 10 févr. 2015, 12:20

Bonjour,

Ce qui est posté là apparemment c'est l'ID du client donc ensuite on récupère cet ID dans la requête d'affichage et on appelle la colonne nom du client (selon le terme en base)

Mega
;)

Post id et nom dans liste déroulante

par Fripou » 10 févr. 2015, 11:20

Bonjour,

J'aurais voulu avoir la méthode pour récupérer l'id et le nom de la valeur sélectionnées dans une liste déroulante. J'arrive très bien à récupérer l'id mais je ne vois pas comment récupérer aussi le nom. Actuellement ma liste ressemble à çà :

Code : Tout sélectionner

<form action="accueil.php" method="post" id="chgclient"> <select name="client" id="client" onchange="document.forms['chgclient'].submit();"> <option value="-1" selected>- Choisissez un client -</option> <?php for($i = 0; $i < $nbclient; $i++){ ?> <option value="<?php echo($code_client[$i]); ?>"<?php echo((isset($id_client) && $id_client == $code_client[$i])?" selected=\"selected\"":null); ?>><?php echo($client[$i]); ?></option> <?php } ?> </select> </form>
Et en début de page j'ai ma variable de session :

Code : Tout sélectionner

session_start();         $id_client = isset($_SESSION['id_client'])?$_SESSION['id_client']:""; if (isset($_POST['client'])) {             $id_client = $_POST['client'];             $_SESSION['id_client'] = $id_client;             $ecran = "client";         }
Je suis pas du tout développeur à la base et j'avoue ne pas voir comment récupérer aussi le nom du client en POST.
Merci d'avance pour l'aide