Le 13 mai 2010 à 20:36, ADB a écrit :
Toujours le même problème.
Je ne comprends pas comment récupérer les valeurs de select.
Je ne comprends pas vraiment ce que tu cherches à faire. Quel est le but de ta manoeuvre ici ? Select est un formulaire, donc une fois qu'une valeur a été sélectionnée par l'utilisateur et que le formulaire a été validé, la valeur choisie est disponible dans l'environnement lorsque la page se recharge.
Là je constate pour commencer que ton formulaire n'a pas de bouton de soumission, ni de <label> pour le select. Donc à part afficher un menu déroulant, il ne va pas se passer grand chose.
J'ai ceci:
<form action='#ENV{action}' method='post'>
#ACTION_FORMULAIRE{#ENV{action}}
<select name="#ENV{value}">
--> Le nom de ton champ est une variable de l'environnement qui porte le nom "value", d'où sort cette variable ?
<option value="#SET{value,black}">Noir</option>
--> Ici tu redéclares la variable "value" en lui donnant la valeur "black", mais tu ne définis pas de valeur pour l'option. La confusion tient peut-être au nom de ta variable : elle s'intitule "value", mais cela n'a rien à voir avec le "value" de l'option. #SET sert à créer une variable pour Spip et à stocker une valeur en mémoire, mais il faut utiliser #GET pour l'afficher. Tu crées donc ici une variable "value", qui remplace donc la variable du même nom qui est appelée précédemment avec #ENV, et tu lui donnes la valeur "black". Mais au final tu n'affiches rien. Donc ton option donnera une valeur nulle.
<option value="#SET{value,white}">Blanc</option>
Même remarque que précédemment : tu modifies une nouvelle fois la valeur de la variable "value" sans rien afficher, donc ton option enverra une valeur nulle.
<option selected="selected" value="yellow">Jaune</option>
<option value="blue">Bleu</option>
<option value="red">Rouge</option>
</select>
</form>
puis
#GET{value}
Ici tu affiches donc la valeur de la variable "value" que tu as modifié plusieurs fois plus haut. Tu devrais donc afficher systématiquement "white" puisque c'est la dernière valeur assignée à cette variable.
Mai ça ne marche pas.
Je fouille partout et je ne trouve pas ce que je veux. Surtout, je ne pige pas le mécanisme du #ENV dans les select comme suggéré là: Formulaires CVT par l'exemple - SPIP
Merci
ADB
#ENV sert à récupérer une valeur qui existe dans l'environnement.
#SET sert à créer ou à modifier une variable, #GET sert à récupérer une variable préalablement créée avec #SET.
Essaye d'expliquer exactement ce que tu cherches à faire : quelle variable tu désires créer et pour en faire quoi. Ca sera plus simple de te venir en aide si on comprend ce que tu souhaites faire !-)
pw