Un peu de théorie
Une liste déroulante, c’est :
Qui donne ceci :
avec la valeur 2 qui est présélectionnée.
Logiquement, quand on envoie un formulaire et que la page de résultat ré-affiche ce formulaire, on s’attend à ce que la liste déroulante soit positionnée sur la valeur que l’on a choisie.
Syntaxe SPIP
Signification de ce code
[(#ENV{param}|=={1}|?{' selected="selected"',''})] signifie :
- prendre la valeur du paramètre d’URL nommé “param” (càd, le name du select) :
[(#ENV{param})] - Voir s’il est égal à une valeur :
|=={1} - S’il est effectivement égal à la valeur, renvoyer :
selected="selected", sinon, ne rien renvoyer :''
Exemples d’usage
- une recherche permettant de limiter les rubriques du site par liste déroulante
- une pagination par liste déroulante
- un calendrier avec choix de la période par liste déroulante
- ...



Vos commentaires
# Le 5 juillet 2011 à 10:51, par meyodin
En réponse à : Liste déroulante avec sélection du bon élément
Merci pour la signification de votre code, je planchais sur une boucle depuis 7 jours et j’ai enfin trouvé la solution grâce à ça !!!
Répondre à ce message
# Le 21 juin 2011 à 11:25, par yasean
En réponse à : Liste déroulante avec sélection du bon élément
Bonjour j’essaye ce syntaxe mais ca ne marche pas :
Répondre à ce message
# Le 24 mars 2010 à 09:04, par Seb
En réponse à : Liste déroulante avec sélection du bon élément
Abandonne Spip...
# Le 24 mars 2010 à 11:19, par Maïeul
En réponse à : Liste déroulante avec sélection du bon élément
? Pourquoi ? Et pourquoi sous ce forum ?
Répondre à ce message
# Le 22 septembre 2005 à 14:07, par Jean-luc Grellier
En réponse à : > Liste déroulante avec sélection du bon élément
J’ai bien essayé ça :
<BOUCLE_art2(ARTICLES){id_secteur=13}{par date}{inverse}>[<option value="[(#DATE|annee)]-[(#DATE|mois)][(#ENV{date}|=={[(#DATE|annee)]-[(#DATE|mois)]}|?{' selected="selected"',''})]">(#DATE|nom_mois|unique)[ - (#DATE|annee)]</option>]
</BOUCLE_art2>
Mais ça ne fonctionne pas... pas de message d’erreur non plus...
# Le 22 septembre 2005 à 15:38, par Jean-luc Grellier
En réponse à : > Liste déroulante avec sélection du bon élément
Merci Jacques, il faut éviter de faire ce que j’ai fait : un champ sélect qui s’appelle date (c’est une variable réservée à spip)... par contre mon problème est ailleurs et est du à la complexité de ma page... si cela intéresse quelqu’un :
<form name="formulaire">
<label for="iddate">Période:</label>
<select name="ladate" id="iddate">
<BOUCLE_art2(ARTICLES){id_secteur=13}{par date}{inverse}>
[<option value="[(#DATE|annee)]-[(#DATE|mois)][(#ENV{ladate}|=={[(#DATE|annee)]-[(#DATE|mois)]}|?{' selected="selected"',''})]">(#DATE|nom_mois|unique)[ - (#DATE|annee)]</option>]
</BOUCLE_art2>
</select><INPUT TYPE="submit" VALUE="Rechercher">
</form>
<div class="archives">
<h4>Actualités de [(#DATE|nom_mois)] [(#DATE|annee)]</h4> <ul>
<BOUCLE_princ(ARTICLES){mois_relatif=0}{id_secteur=13}{par date}{inverse}>
<li>[<a id="lien" href="#URL_ARTICLE">(#TITRE|supprimer_numero)</a> - ]<BOUCLE_RUBART(RUBRIQUES){id_rubrique}>[[<a href="#URL_RUBRIQUE">(#TITRE|supprimer_numero)</a>]]</BOUCLE_RUBART>[ - (#DATE|jour)]/[(#DATE|mois)]</li>
</BOUCLE_princ>
</ul>
</div>
Cela ne peut fonctionner puisque je prends le critère d’âge relatif (celui qui est passé en variable ou la variable date si rien n’est passé)... c’est pour cela qu’il faut que j’utilise date dans mon formulaire, cela me permet d’affecter une valeur à cette variable...
Si cela intéresse quelqu’un...
Merci
Répondre à ce message