Recuperation valeur 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 : Recuperation valeur liste déroulante

par zeus » 19 janv. 2007, 17:01

Modération :
Puisque ta question est résolue, j'ajoute le tag [Résolu]
pour indiquer aux personnes qui voudront consulter ce sujet qu'il contient une solution.

Tu peux réaliser cette opération toi-même
en cliquant sur le bouton [Mettre Résolu] qui s'affiche en haut à gauche de ce sujet
si tu as posté le 1er message en tant que membre (inscrit et identifié).

Alors... inscris-toi !!! ;)

par Nico26 » 19 janv. 2007, 13:04

Super Merci bien!!

C'est exactement ce qu'il me fallait. :D :D

par Ryle » 19 janv. 2007, 12:58

En fait si j'ai bien compris, tu veux faire afficher dynamiquement la valeur de l'attribut "value" de l'option sélectionnée en dehors de la liste ?

pour ça il va te falloir renseigner l'attribut onChange du select pour lui faire exécuter cette action et ajouter un élément (champ input, span, ...) dans lequel on va pouvoir afficher la valeur :

Je vais opter pour un <span> dans un premier temps. Je lui donne un id afin de pouvoir l'identifier en javascript dans la page :
/*Je veux recuperer $code_lieu[$d]*/ 
    /*et l'afficher ici [i]echo "Cle:".variable_recupere; */
echo '<span id="valeurSelect"></span>'; 
Je ne met rien dedans, le contenu sera renseigné par le choix du select, mais on pourrait très envisager une valeur par défaut :)

Ensuite on ajoute le onChange dans le select :
$liste .= '<select name="Lieu" id="Lieu" 
  onchange="document.getElementById(\'valeurSelect\').innerHTML = this.options[this.selectedIndex].value;">'; 
Pour le détail :

document.getElementById('valeurSelect') => correspond au span
document.getElementById('valeurSelect').innerHTML => correspon au contenu du span

this => correspond à l'élément courrant (le select donc :))
this.options => correspond au tableau d'option du select
this.selectedIndex => correspond à l'index de l'élément sélectionné
this.options[this.selectedIndex] => correspond a l'option selectionnée
this.options[this.selectedIndex].value => correspond à la valeur de l'option sélectionnée

par Nico26 » 19 janv. 2007, 12:41

Désolé je me suis mal exprimé. Je débute en php.

En fait je veux récupérer le value de la valeur sélectionné dans la liste.
variable_recuperer est le value de la valeur sélectionné dans la liste.

Voila pour les précisions

par Ryle » 19 janv. 2007, 12:31

Je souhaite seulement récupérer le value de <option></option>, pas la valeur sélectionnée
C'est quelle value du select que tu souhaites récupérer si c'est pas celle sélectionnée ?
    /*Je veux recuperer $code_lieu[$d]*/ 
    /*et l'afficher ici [i]echo "Cle:".variable_recupere;
c'est sensé être quoi variable_recupere ?
Si c'est juste le dernier id de ton select, suffit de faire un :
echo $code_lieu[count($code_lieu)-1];
Si c'est tous les id, il faut mettre le echo dans la boucle.
Si c'est tous les id, mais que tu veux les afficher après le select, tu les stoques dans une variable temporaire que tu affiches après..

je vois pas vraiment ce qui te gène....

Recuperation valeur liste déroulante

par Nico26 » 19 janv. 2007, 12:05

Bonjour

J'ai 2 listes déroulantes liées entre elles suivant le tuto Solution alternative : AJAX trouvé à ce lien
http://www.phpfrance.com/forums/voir_sujet-4562.php

Il fonctionne super bien. Je souhaite seulement récupérer le value de <option></option>, pas la valeur sélectionnée, dans une variable et que chaque fois que je sélectionne une autre valeur dans la 2ème liste (sur le onchange) ou quand je change de valeur dans la 1ère liste (ce qui va changer le contenu de la 2ème liste), cette variable soit mise à jour.

Cette variable je l'affiche en dessous.

Voici le code

Code : Tout sélectionner

<?php /** * Code qui sera appelé par un objet XHR et qui * retournera la liste déroulante des bâtiments * correspondant au secteur sélectionnée. */ // Chargement des paramètres //de connexion à la base de données include ('connexion.php'); /* On récupère l'identifiant du secteur choisi. */ $idr = isset($_GET['idr']) ? $_GET['idr'] : false; /* Si on a un secteur, on procède à la requête */ if(false !== $idr) { /* Création de la requête pour avoir les bâtiments de ce secteur */ $sql2 = "SELECT `ID_cles` as idc, `Lieu`". " FROM `tbl_cles`". " WHERE `Num_Secteur` = ". $idr . " ORDER BY idc;"; //Exécution de la requête $rech_lieu = mysql_query($sql2, $db_connexion); /* Un petit compteur pour les bâtiments */ $nd = 0; /* On crée deux tableaux pour les numéros et les noms des bâtiments */ $code_lieu = array(); $nom_lieu = array(); /* On va mettre les numéros et noms des bâtiments dans les deux tableaux */ while(false != ($ligne_lieu = mysql_fetch_assoc($rech_lieu))) { $code_lieu[] = $ligne_lieu['idc']; $nom_lieu[] = $ligne_lieu['Lieu']; $nd++; } /* Maintenant on peut construire la liste déroulante */ $liste = ""; $liste .= '<select name="Lieu" id="Lieu" onchange="">'."\n"; for($d = 0; $d < $nd; $d++) { $liste .= ' <option value="'.$code_lieu[$d].'">'.htmlentities($nom_lieu[$d]).' '.$code_lieu[$d] .'</option>'."\n"; } $liste .= "</select>"."\n"; [b] /*Je veux recuperer $code_lieu[$d]*/ /*et l'afficher ici [i]echo "Cle:".variable_recupere;[/i][/b] /* Un petit coup de balai */ mysql_free_result($rech_lieu); /* Affichage de la liste déroulante */ echo($liste); } /* Sinon on retourne un message d'erreur */ else { echo("<script language='Javascript'>alert('Une erreur s'est produite.\nLe secteur sélectionné comporte une donnée invalide.')</script>"); } ?>
Merci