Liste déroulante avec choix par défaut

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 : Liste déroulante avec choix par défaut

Re: Liste déroulante avec choix par défaut

par piotrowski-s » 14 déc. 2012, 16:42

le problème je crois que dans ton code l'attribut selected est dans le value, je me trompe ?

Re: Liste déroulante avec choix par défaut

par marc73450 » 14 déc. 2012, 16:30

salut

aurais tu trouvé la solution ?
je cherche à faire la même chose que toi ?

A+

Re: Liste déroulante avec choix par défaut

par AB » 17 nov. 2012, 20:46

Faut revoir la logique de ton script. A quoi sert la deuxième requête imbriquée ?
Tu mets comme commentaire :
// je recupere les données temporaires et la ligne ou le login de la bdd est égale au login du while
Mais comme le login du while est donné par la bdd, la phrase devient
je recupere les données temporaires et la ligne ou le login de la bdd est égale au login de la bdd
A part ça pour ajouter des options dans une ligne tu peux faire :
$selected = $a == $b? 'selected="selected"' : null;
echo '<option value="'.$row['id_type_ad'].'" '.$selected.'>'.$row['id_type_ad'].'</option>';
Notes que dans quasiment tous les cas, et notamment quand il s'agit d'écrire des champs de formulaires, il est plus facile et plus lisible d'utiliser les simples quotes pour entourer une ligne qui contient des variables concaténées.

Re: Liste déroulante avec choix par défaut

par SICarmy » 17 nov. 2012, 15:39

Même en inversant value et selected, ca ne marche pas, je ne vois pas ou pourrais être le problème
$sql = "SELECT DISTINCT login,id_type_ad FROM adherent"; // je selectionne ma liste d'adhérents et leurs types
$donnees = mysql_query($sql); // j’exécute la requete
echo "<select>";  //j'ouvre ma balise select

        while ($row = mysql_fetch_array($donnees, MYSQL_ASSOC)) { 
        $data = " SELECT DISTINCT login,id_type_ad FROM adherent WHERE login  = '" . $row['login'] . "'"; // je recupere les données temporaires et la ligne ou le login de la bdd est égale au login du while
        $data = mysql_query($data);   // j’exécute la requete
        $data = mysql_fetch_array($data); //je formate mes données pour pouvoir les utiliser
        echo "<option value=".$row['id_type_ad']. " ";  //j'ouvre ma balise option 
        if ( $row["id_type_ad"] == $data["id_type_ad"] )  //je compare si le type du while = au type du login
        {
        echo " selected=\"selected\" ";  //je le selectionne
        }
        echo ">" . $row['id_type_ad']. "</option>";  //je ferme ma balise option

        } 
echo "</select>";

Re: Liste déroulante avec choix par défaut

par frf2 » 17 nov. 2012, 12:57

sa devrait fonctionner comme ceci:
$sql = "SELECT DISTINCT login,id_type_ad FROM adherent";
$donnees = mysql_query($sql);
echo "<select>";  

        while ($row = mysql_fetch_array($donnees, MYSQL_ASSOC)) {
       $data = " SELECT DISTINCT login,id_type_ad FROM adherent WHERE login  = " . $row['login'];
        $data = mysql_query($data);  
        $data = mysql_fetch_array($data);
        echo "<option value=".$row['id_type_ad'];
        if ( $row["id_type_ad"] == $data["id_type_ad"] ) 
        {
        echo " selected=\"selected\">";
        }
        echo $row['id_type_ad']. "</option>"; 

        } 
echo "</select>";

Liste déroulante avec choix par défaut

par SICarmy » 17 nov. 2012, 01:41

Bonjour, j'ai besoin d'afficher une liste déroulante avec choix, mais j'aimerais bien que la valeur "selected" soit affichée de base. j'ai fait ce morceau de code mais mon if ne semble pas marcher correctement. Auriez vous une idée?


$sql = "SELECT DISTINCT login,id_type_ad FROM adherent";
$donnees = mysql_query($sql);
echo "<select>";  

	while ($row = mysql_fetch_array($donnees, MYSQL_ASSOC)) {
	$data = " SELECT DISTINCT login,id_type_ad FROM adherent WHERE login  = '" . $row['login'] . "' ";
	$data = mysql_query($data);  
	$data = mysql_fetch_array($data);
	echo "<option ";
	if ( $row["id_type_ad"] == $data["id_type_ad"] ) 
	{
	echo " selected=\"selected\" ";
	}
	echo " value='" .$row['id_type_ad']. "' >" . $row['id_type_ad'] . "</option>"; 

	} 
echo "</select>";  

?>