concatenation avec select

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 : concatenation avec select

par albat » 03 nov. 2008, 09:29

J'émets un gros doute que la validité de la balise <SELECTED>
et te propose donc la solution suivante.

Remplacer :
if ($choix == $array["ref_utilisateur"]) {
         echo '<option value="' . $row['ref_utilisateur'] .'">' . $row['nom'] . ' ' . $row['prenom'] . '<SELECTED></option>'; 
      }else{
         echo '<option value="' . $row['ref_utilisateur'] .'">' . $row['nom'] . ' ' . $row['prenom'] . '</option>'; 
      } 
par :
echo '<option value="'.$row['ref_utilisateur'].'"'.($choix == $array["ref_utilisateur"] ? 'selected="selected"' : '').'>'.$row['nom'].' '.$row['prenom'].'</option>'; 

par Invité » 02 nov. 2008, 20:56

En fait j' ai trouvé.

Voici la solution pour ceux qui souhaite l'utiliser.
$query ="SELECT `ref_utilisateur` , `nom` , `prenom` FROM `utilisateurs` ";
$result=mysql_query($query);
if ($query) {
   echo "<form action={$_SERVER['PHP_SELF']} method='post'>";
   echo '<select name="choix1">';
   while ($row = mysql_fetch_assoc($result)) {
      if ($choix == $array["ref_utilisateur"]) {
         echo '<option value="' . $row['ref_utilisateur'] .'">' . $row['nom'] . ' ' . $row['prenom'] . '<SELECTED></option>'; 
      }else{
         echo '<option value="' . $row['ref_utilisateur'] .'">' . $row['nom'] . ' ' . $row['prenom'] . '</option>'; 
      }
   }
   echo '</select>';
}

par caroube » 02 nov. 2008, 16:48

Je pense qu'il serait bon que tu lises la documentation et les exemple de mysql_fetch_assoc
http://fr3.php.net/manual/fr/function.m ... -assoc.php

par Invité » 02 nov. 2008, 16:12

OK Merci mais d'ou vient la variable row ?

je suppose d'un tableau array ?

voici mon code mais il ne fonctionne pas.

Où est l'erreur ?
$query = mysql_query("SELECT `ref_utilisateur` , `nom` , `prenom` FROM `cms_utilisateurs`") ;
if ($query) {
    echo '<form method="post">';
             echo '<select name="choix">';
                   while ($array = mysql_fetch_assoc($query)) {
		           echo '<option value="' . $row['ref_utilisateur'] .'">' . $row['nom'] . ' ' . $row['prenom'] . '</option>'; 
}
             echo '</select>';
}

par Ryle » 02 nov. 2008, 13:37

Le plus simple serait de récupérer également l'identifiant de l'enregistrement en plus du nom et du prénom. Ensuite, il suffit simplement de placer les valeurs dans les options de ton <select> :
echo '<option value="' . $row['id'] .'">' . $row['nom'] . ' ' . $row['prenom'] . '</option>';
L'utilisateur verra uniquement les noms et prénoms, et lorsqu'il soumettra le formulaire tu récupèreras la valeur de l'attribut value, dans mon exemple, l'id de l'enregistrement correspondant :)

concatenation avec select

par alain78 » 02 nov. 2008, 12:50

Probleme:
on recupère 2 champs (nom et prénom) dans une table (membres) et pour l'ensemble des enregistrements.
on concatène ces 2 champs pour obtenir une variable "nom Prénom"


comment passer cette variable dans un Select Form pour permettre une liste déroulante de l'ensemble des enregistrement de la table avec en affichage (Nom Prénom)

L'utilisateur choisi dans la liste un choix (nom prenom) que l'on recherche ensuite dans la table (membres)