Pré-positionner 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 : Pré-positionner une liste déroulante

Re: Pré-positionner une liste déroulante

par Ryle » 31 janv. 2010, 15:32

Le principe est bon, il te faut simplement le mettre en place :)
   $ld = "<SELECT NAME='nom_agence'>";
   $ld .= "<OPTION VALUE=0></OPTION>";
      // On boucle sur la table
      while ( $row = mysql_fetch_array($result)) 
         {
         $id_agence = $row["id_agence"];
         $agence = $row["nom_agence"];
         if ($id_agence == $id_agence_du_user_courrant) {
                  $ld .= "<OPTION VALUE='$id_agence' SELECTED>$agence</OPTION>";
         else
                  $ld .= "<OPTION VALUE='$id_agence'>$agence</OPTION>";
         }
   $ld .= "</SELECT>";   
Tu peux ainsi sélectionner l'agence de l'utilisateur en remplaçant ma variable $id_agence_du_user_courrant par la variable qui va bien et qui contient cette information :)

Pré-positionner une liste déroulante

par arnovs72 » 31 janv. 2010, 15:08

Bonjour a tous,

Ca ne fait que quelques semaines que j'apprends le html et php.
Grace aux différents forums comme celui ci , mon petit site prend forme doucement. Mais ca fait une semaine que je bloque sur le même pb, celui de pré-selectionner une valeur dans une liste dynamique.
J'ai trouvé sur ce site la maniere de proceder mais n'arrive pas à l'integrer à mon code et plus ca va plus je m'embrouille.
J'ai donc dédidé de vous demander un coup de main et vous en remercie d'avance.J'ai deux tables, une table user avec un champ id_user et un champ id_agence et une autre table agence avec un champ id_agence et un autre nom_agence
Pour faire simple, ma liste déroulante est alimentée par la table agence , et j'ai besoin qu'elle se positionne automatiquement sur la valeur du champ id_agence de la table user.

Dans la page de mon formulaire de modification, je recupere la valeur id_agence issue de ma table user sous la variable que j'ai nommée $id_agence_user

Je construis ma liste de cette manière :

Code : Tout sélectionner

<?php mysql_connect("localhost", "root", "") or die( "Connexion impossible."); mysql_select_db("si") or die( "Accès base impossible."); $result = mysql_query("SELECT * FROM agence"); $ld = "<SELECT NAME='nom_agence'>"; $ld .= "<OPTION VALUE=0></OPTION>"; // On boucle sur la table while ( $row = mysql_fetch_array($result)) { $id_agence = $row["id_agence"]; $agence = $row["nom_agence"]; $ld .= "<OPTION VALUE='$id_agence'>$agence</OPTION>"; } $ld .= "</SELECT>"; print $ld; ?>
D'après ce que j'ai compris , c' est l' option selected qui permet de selectioner une valeur de ma liste , il faut également que j'utilise une boucle qui ira tester si la $id_agence est égale à $id_agence_user et dans ce cas la selectionner .
Mais je ne comprend pas ou et comment construire cette boucle de test.
Voici l' exemple de code trouvé sur ce forum :

Code : Tout sélectionner

<select name="age"> <?php $valeurChoisie = 20; for ($i=7; $i<=77; $i++) { if ($i == $valeurChoisie) { echo '<option value="'.$i.'" selected="selected">'.$i.'</option>'; } else { echo '<option value="'.$i.'">'.$i.'</option>'; } } ?> </select>
Si vous avez la moindre idée, je suis preneur car là je bloque completement et surtout je m'embrouille....
Mercid'avance pour l'aide que vous pourrez m'apporter.
Bonne journée
Arnaud