Comment faire un selected=selected sur un combo en dur

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 : Comment faire un selected=selected sur un combo en dur

par zeus » 06 mai 2009, 20:23

Modération :
consequences, si ta question est résolue, pense à ajouter 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 en cliquant sur le bouton Image en haut à gauche de ce sujet.

par consequences » 06 mai 2009, 11:40

Okay et encore merci, oui j'ai refait une combo avec un tableau tout simplement comme tu me la conseiller
c'est bien plus pratique en plus encore merci a toi

Re: Comment faire un selected=selected sur un combo en dur

par VaN » 06 mai 2009, 11:23

Bonjour,

Je m'explique jamais faire un selected=selected sur le option dont la value sera egal au donnée de ma
requete un truc du genre $row['Statut']; dans une combobox avec une boucle while je sais faire mais
la avec une combo en dur je vois pas du tout comment faire car jai aucune variable avec laquelle
comparer



$index.="\t\t\t\t\t<tr><td  align="left"> Statut admin <span class="rouge"> * </span></td>\n";	
$index.="\t\t\t\t\t<td align="left"><select name="modif_users_level">\n";
$index.="\t\t\t\t\t\t<option value="Administrateur"> Administrateur </option>\n";
$index.="\t\t\t\t\t\t<option value="Demi-administrateur"> Demi-administrateur</option>\n";
$index.="\t\t\t\t\t\t<option value="Préparateur de commandes"> Préparateur de commandes </option>\n";																												
$index.="\t\t\t\t\t</select>\n";
$index.="\t\t\t\t</td>\n";	
					$index.="\t\t\t\t\t\t\t</tr>\n";
2 solutions me viennent en tête :

1. Tout de même passer par une boucle, en créant, à l'origine, un tableau en brut, de tes différentes options :
<?php
$statuts = array("Administrateur", "Demi-administrateur", "Préparateur de commandes");

foreach($statuts as $statut) {
    $statut == $row["Statut"] ? $selected = "selected="selected"" : $selected = "";
    echo "<option value="".$statut."" ".$selected.">".$statut."</option>";
}
?>
2. ou bien, tester la value sur chaque option :
$index.="\t\t\t\t\t\t<option value="Administrateur"";
if($row["Statut"] == "Administrateur") $index.= "selected="selected"";
$index .= "> Administrateur </option>\n";

$index.="\t\t\t\t\t\t<option value="Demi-administrateur";
if($row["Statut"] == "Demi-administrateur") $index.= "selected="selected"";
$index .= "> Demi-administrateur</option>\n";

$index.="\t\t\t\t\t\t<option value="Préparateur de commandes"";
if($row["Statut"] == "Préparateur de commandes") $index.= "selected="selected"";
$index .= "> Préparateur de commandes </option>\n";
La deuxième solution est quand même beaucoup moins propre.
Et surtout, la première est bcp plus modulable, puisqu'il te suffit de rajouter une entrée dans le tableau, le jour ou tu souhaite rajouter un nouveau statut : )

Et si je peux me permettre de te donner un conseil, c'est de créer une table qui va stocker les différents statuts, plutot que de les coder en brut dans la page.

Tu te fais une petite fonction qui va récupérer tes statuts en base de données, et tu utilise la méthode 1, sauf que ton tableau PHP n'est plus codé en brut, mais généré via ta requête. Et utilises des identifiants INT pour les value de tes options, et non des STRING

Comment faire un selected=selected sur un combo en dur

par consequences » 06 mai 2009, 10:56

Bonjour,

Je m'explique jamais faire un selected=selected sur le option dont la value sera egal au donnée de ma
requete un truc du genre $row['Statut']; dans une combobox avec une boucle while je sais faire mais
la avec une combo en dur je vois pas du tout comment faire car jai aucune variable avec laquelle
comparer



$index.="\t\t\t\t\t<tr><td  align=\"left\"> Statut admin <span class=\"rouge\"> * </span></td>\n";	
$index.="\t\t\t\t\t<td align=\"left\"><select name=\"modif_users_level\">\n";
							$index.="\t\t\t\t\t\t<option value=\"Administrateur\"> Administrateur </option>\n";
							$index.="\t\t\t\t\t\t<option value=\"Demi-administrateur\"> Demi-administrateur</option>\n";
							$index.="\t\t\t\t\t\t<option value=\"Préparateur de commandes\"> Préparateur de commandes </option>\n";																												
							$index.="\t\t\t\t\t</select>\n";
$index.="\t\t\t\t</td>\n";	
					$index.="\t\t\t\t\t\t\t</tr>\n";