Formulaire Select

Bonjour
Je ne sais plus récupoérer de valeurs de formulaires dans SPIP!!
J'ai ce form:

Noir
Blanc
Jaune

dont je veux récupérer value dans
td class="news_textesmall" style="background-color:#ENV{value}" id="case_lng">L. (m)</td

Et je n'y parviens pas. Que me manque-t-il donc (sinon un peu de connaissances)

Merci
ADB

Bonjour,

Comment est inséré le formulaire ? Et la zone qui récupère le #ENV ?

Le 12 mai 2010 16:51, Arnaud DUPIN DE BEYSSAT <a.adupinbe@orange.fr> a écrit :

Bonjour
Je ne sais plus récupoérer de valeurs de formulaires dans SPIP!!
J’ai ce form:

Noir
Blanc
Jaune

dont je veux récupérer value dans
td class=« news_textesmall » style=« background-color:#ENV{value} » id=« case_lng »>L. (m)</td

Et je n’y parviens pas. Que me manque-t-il donc (sinon un peu de connaissances)

Merci
ADB


liste spip
spip@rezo.net - désabonnement : envoyer un mail à spip-off@rezo.net

Infos et archives : http://listes.rezo.net/mailman/listinfo/spip
http://archives.rezo.net/spip.mbox/

Documentation de SPIP : http://www.spip.net/

Irc : de l’aide à toute heure : http://spip.net/irc

Désolé, l mailer bouffe le code...

Le formulaire appelant:
form name="carte" method="post"
select name="drp_repere" id="drp_repere" onChange="document.getElementById('carte').submit()"
option value="1">Noir/option
option value="2">Blanc/option
option selected="selected" value="3">JauneL. (m) Message du 12/05/10 17:35

De : "TeddyP SPIP"
A : "Arnaud DUPIN DE BEYSSAT"
Copie à : "spip [spip]"
Objet : Re: [Spip] Formulaire Select

Bonjour,

Comment est inséré le formulaire ? Et la zone qui récupère le #ENV ?

Le 12 mai 2010 16:51, Arnaud DUPIN DE BEYSSAT a écrit
:

> Bonjour
> Je ne sais plus récupoérer de valeurs de formulaires dans SPIP!!
> J'ai ce form:
>
>
> Noir
> Blanc
> Jaune
>
>
> dont je veux récupérer value dans
> td class="news_textesmall" style="background-color:#ENV{value}"
> id="case_lng">L. (m) >
> Et je n'y parviens pas. Que me manque-t-il donc (sinon un peu de
> connaissances)
>
> Merci
> ADB
>

>

Toujours le même problème.
Je ne comprends pas comment récupérer les valeurs de select.
J'ai ceci:
<form action='#ENV{action}' method='post'>
     #ACTION_FORMULAIRE{#ENV{action}}
<select name="#ENV{value}">
<option value="#SET{value,black}">Noir</option>
<option value="#SET{value,white}">Blanc</option>
<option selected="selected" value="yellow">Jaune</option>
<option value="blue">Bleu</option>
<option value="red">Rouge</option>
</select>
</form>
puis
#GET{value}

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à: http://www.spip.net/fr_article3796.html

Merci
ADB

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

Bonour
et merci pour toutes tes eremarques, qui m'éclairent sur SET, GET et ENV. Ce n'est pas pour autant que je saurai m'en servir :slight_smile:
Et puis, étant plongé dedans, sans doute le problème me paraît plus clair que quelqu'un d'extérieur. Je vais donc essayer de mieux expliquer.

Afin d'alléger ma page html (ici, cliquer sur Parcours puis Cartes: http://www.francegolf.fr/SPIP/?page=article-golf&id_article=00679) Je veux modifier la couleur des cases jaunes en fonction de la valeur issue du form select. Je ne veux pas de bouton submit mais que la valeur se modifie automatiquement au changement de couleur par l'utilisateur (donc un onchange).
4 couleurs => une couleur sélectionnée => changement de couleur de la case.
Ce que j'écris, en simple formulaire:

<form method="post" onchange="(validation du changement dans la page)">
<select name="couleur">
<option value="noir">Noir</option>
<option value="blue">Bleu</option>
</select>
</form>

Mon pb actuel est effecivement de récupérer la valeur de value par un #GET{value}.

J'espère avoir été plus clair.
Merci de ton aide
Arnaud Dupin (ADB)

Le 14 mai 2010 à 12:07, ADB a écrit :

Bonour
et merci pour toutes tes eremarques, qui m'éclairent sur SET, GET et ENV. Ce n'est pas pour autant que je saurai m'en servir :slight_smile:
Et puis, étant plongé dedans, sans doute le problème me paraît plus clair que quelqu'un d'extérieur. Je vais donc essayer de mieux expliquer.

Afin d'alléger ma page html (ici, cliquer sur Parcours puis Cartes: http://www.francegolf.fr/SPIP/?page=article-golf&id_article=00679) Je veux modifier la couleur des cases jaunes en fonction de la valeur issue du form select. Je ne veux pas de bouton submit mais que la valeur se modifie automatiquement au changement de couleur par l'utilisateur (donc un onchange).
4 couleurs => une couleur sélectionnée => changement de couleur de la case.
Ce que j'écris, en simple formulaire:

<form method="post" onchange="(validation du changement dans la page)">
<select name="couleur">
<option value="noir">Noir</option>
<option value="blue">Bleu</option>
</select>
</form>

Mon pb actuel est effecivement de récupérer la valeur de value par un #GET{value}.

J'espère avoir été plus clair.
Merci de ton aide
Arnaud Dupin (ADB)

Dans ce cas c'est tout simple : lorsque le visiteur sélectionne une couleur, la page se recharge et la valeur de la couleur choisie devient disponible dans l'environnement et tu peux donc l'appeler avec un #ENV{couleur} (puisque ton select porte le nom "couleur").

Pour aller plus loin, tu pourrais même gérer ton tableau dans un <INCLURE> avec {ajax} de manière à ne recharger que le tableau lorsqu'une couleur est sélectionnée...

OK. Mais je pense, en fait, que le pb est le

onchange="(validation du changement dans la page)"

que je ne sais évidemment pas écrire.

Le 14/05/2010 13:06, pascal weber a écrit :

Le 14 mai 2010 à 12:07, ADB a écrit :

Bonour
et merci pour toutes tes eremarques, qui m'éclairent sur SET, GET et ENV. Ce n'est pas pour autant que je saurai m'en servir :slight_smile:
Et puis, étant plongé dedans, sans doute le problème me paraît plus clair que quelqu'un d'extérieur. Je vais donc essayer de mieux expliquer.

Afin d'alléger ma page html (ici, cliquer sur Parcours puis Cartes: http://www.francegolf.fr/SPIP/?page=article-golf&id_article=00679) Je veux modifier la couleur des cases jaunes en fonction de la valeur issue du form select. Je ne veux pas de bouton submit mais que la valeur se modifie automatiquement au changement de couleur par l'utilisateur (donc un onchange).
4 couleurs => une couleur sélectionnée => changement de couleur de la case.
Ce que j'écris, en simple formulaire:

<form method="post" onchange="(validation du changement dans la page)">
<select name="couleur">
<option value="noir">Noir</option>
<option value="blue">Bleu</option>
</select>
</form>

Mon pb actuel est effecivement de récupérer la valeur de value par un #GET{value}.

J'espère avoir été plus clair.
Merci de ton aide
Arnaud Dupin (ADB)

Dans ce cas c'est tout simple : lorsque le visiteur sélectionne une couleur, la page se recharge et la valeur de la couleur choisie devient disponible dans l'environnement et tu peux donc l'appeler avec un #ENV{couleur} (puisque ton select porte le nom "couleur").

Pour aller plus loin, tu pourrais même gérer ton tableau dans un<INCLURE> avec {ajax} de manière à ne recharger que le tableau lorsqu'une couleur est sélectionnée...

_______________________________________________
liste spip
spip@rezo.net - désabonnement : envoyer un mail à spip-off@rezo.net

Infos et archives : http://listes.rezo.net/mailman/listinfo/spip
Discuter chez rezo.net

Documentation de SPIP : http://www.spip.net/

Irc : de l'aide à toute heure : http://spip.net/irc

Bon, je crois que je progresse, mais je me heurte à la syntaxe javascript.
Pour l'instant, j'ai:

<script type="text/javascript">
function verification_choix() {
  for(i=0;i<document.formulaire_test.choix.length;++i)
   if(document.formulaire_test.choix.options[i].selected == true)
    alert(document.formulaire_test.choix.options[i].value);
}
</script>

<form method="Post" name="formulaire_test">
<select name="choix" onChange="verification_choix()">
<option value="black">Noir</option>
<option value="white">Blanc</option>
<option selected="selected" value="yellow">Jaune</option>
<option value="blue">Bleu</option>
<option value="red">Rouge</option>
</select>
</form>

Mais je ne veux pas de alert, je veux récupérer la valeur pour l'utiliser. Et je n'y parviens pas.
Merci
ADB

Le 14 mai 2010 à 15:53, ADB a écrit :

Bon, je crois que je progresse, mais je me heurte à la syntaxe javascript.
Pour l'instant, j'ai:

<script type="text/javascript">
function verification_choix() {
for(i=0;i<document.formulaire_test.choix.length;++i)
if(document.formulaire_test.choix.options[i].selected == true)
  alert(document.formulaire_test.choix.options[i].value);
}
</script>

<form method="Post" name="formulaire_test">
<select name="choix" onChange="verification_choix()">
<option value="black">Noir</option>
<option value="white">Blanc</option>
<option selected="selected" value="yellow">Jaune</option>
<option value="blue">Bleu</option>
<option value="red">Rouge</option>
</select>
</form>

Mais je ne veux pas de alert, je veux récupérer la valeur pour l'utiliser. Et je n'y parviens pas.
Merci
ADB

Peut-être tout simplement ça :

<form method="Post" name="formulaire_test">
<select name="choix" onChange="javascript:window.location.href=document.redirect.choix.value">
<option value="[(#SELF|parametre_url{couleur,black})]">Noir</option>
<option value="[(#SELF|parametre_url{couleur,white})]">Blanc</option>
etc...
</select>
</form>

Désolé, non, ça ne fonctionne pas.
Je suis sûr que c'est assez simple, m ais je ne sais pas l'écrire...
Je cherche...
Merci
ADB

Le 14/05/2010 16:27, pascal weber a écrit :

Le 14 mai 2010 à 15:53, ADB a écrit :

Bon, je crois que je progresse, mais je me heurte à la syntaxe javascript.
Pour l'instant, j'ai:

<script type="text/javascript">
function verification_choix() {
for(i=0;i<document.formulaire_test.choix.length;++i)
  if(document.formulaire_test.choix.options[i].selected == true)
   alert(document.formulaire_test.choix.options[i].value);
}
</script>

<form method="Post" name="formulaire_test">
<select name="choix" onChange="verification_choix()">
<option value="black">Noir</option>
<option value="white">Blanc</option>
<option selected="selected" value="yellow">Jaune</option>
<option value="blue">Bleu</option>
<option value="red">Rouge</option>
</select>
</form>

Mais je ne veux pas de alert, je veux récupérer la valeur pour l'utiliser. Et je n'y parviens pas.
Merci
ADB

Peut-être tout simplement ça :

<form method="Post" name="formulaire_test">
<select name="choix" onChange="javascript:window.location.href=document.redirect.choix.value">
<option value="[(#SELF|parametre_url{couleur,black})]">Noir</option>
<option value="[(#SELF|parametre_url{couleur,white})]">Blanc</option>
etc...
</select>
</form>

_______________________________________________
liste spip
spip@rezo.net - désabonnement : envoyer un mail à spip-off@rezo.net

Infos et archives : http://listes.rezo.net/mailman/listinfo/spip
Discuter chez rezo.net

Documentation de SPIP : http://www.spip.net/

Irc : de l'aide à toute heure : http://spip.net/irc