Option par défaut dans 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 : Option par défaut dans une liste déroulante

Re: Option par défaut dans une liste déroulante

par moogli » 09 mai 2011, 21:26

de rien :)

@+

Re: Option par défaut dans une liste déroulante

par Castor Gaspard » 09 mai 2011, 20:42

Bonsoir,

Merci, Moogli.

En fait, tu as parfaitement compris ma pensée, car je n'avais pas osé poursuivre le raisonnement jusque là dans ma question pour ne pas décourager un éventuel contributeur.

:mrgreen:

Merci. :D

Bien à toi,

Gaspard

Re: Option par défaut dans une liste déroulante

par moogli » 09 mai 2011, 20:37

yop,

plutôt que d'utiliser directement $_POST (sachant que tu ne vérifie pas si cet index existe ;) ). Il serait plus intéressant d'utiliser une variable que tu affecte en fonction des paramètre que tu choisis. Cela peut être une validation de formulaire, mais aussi un cookie, une session, valeur d'url etc. L'avantage c'est que ton code sera plus évolutif :)

par exemple
<?php
$country = 'français';// ou l'index qui va bien
if (!empty($_POST['country'])) {
$country = $_POST['country'];
}
else {
if (!empty($_COOKIE['country'])) $country = $_COOKIE['country'];
else {
//etc
}
}
foreach ($countries as $key => $val)
{
$select = ($country == $key) ? 'selected="selected"' : '';
 <<<option
<option value="$key" $select>$val</option>
option;
<?php
}
?>
bon après tu choisis la hiérarchie que tu souhaite, mais cela te permet d'utiliser ton select quelque soit la provenance de l'info par défaut.

(a tester c'est dans l'idée de la chose ;) )

@+

Option par défaut dans une liste déroulante

par Castor Gaspard » 09 mai 2011, 18:56

Bonjour,

Je souhaite afficher une liste déroulante de pays dans un formulaire, en appelant les valeurs depuis un tableau.

Voici ma syntaxe...
<?php
$countries = array( 
'AF' => 'Afghanistan', 
'AL' => 'Albania', 
'DZ' => 'Algeria', 
'AS' => 'American Samoa', 
'AD' => 'Andorra'
); /* Je vous fais grâce de la liste intégrale !*/
?>
<p>
<label for="country">Pays</label>
<select name="country" id="country"> 
<?php 
foreach ($countries as $key => $val) 
{ 
?> 
	<option value="<?php echo $key; ?>" <?php echo ($_POST['country'] == $key) ? 'selected=""' : ''; ?>><?php echo $val; ?></option>
<?php 
} 
?>
</select>
</p>
Mon code fonctionne.

Cependant, j'aimerai proposer une valeur par défaut lors du premier affichage comme "France", sachant que ce sera le cas le plus... probable. :)

Mes recherches n'ont rien donné.

Assurément, si je place "France" en tête de liste, je remédie au problème, mais cette solution n'est pas très... futée !

Merci pour votre aide. :mrgreen:

Cordialement,

Gaspard