Amélioration d’une menu déroulant

perig Messages postés 358 Date d'inscription vendredi 1 novembre 2002 Statut Membre Dernière intervention 5 septembre 2006 - 8 janv. 2004 à 07:50
floflotz Messages postés 240 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 6 janvier 2006 - 11 janv. 2004 à 21:55
Salut !!!
Voilà, j’ai le script suivant :
<form name='themeselect' method='post' action='index.php3?Theme=Theme' target='_self'>
<select name='Theme'>
<option value=' Theme1’ > Theme1
<option value=' Theme2'> Theme2
</select>

</form>

Bon, ça marche!!

Mais je souhaiterais avoir le même menu déroulant mais sans le bouton de validation (je veux que la validation se fasse juste en cliquant sur theme1 ou theme2)

Comment faire ?
En PHP ou en java script ? Ou simplement une ligne html ?

---Perig---
Pour vous servir 8-)
Et parfois en galère :blush)
Souvent même :)

11 réponses

floflotz Messages postés 240 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 6 janvier 2006
8 janv. 2004 à 13:41
c'est du javascript !

<form name= 'themeselect' method='post' action='index.php3?Theme=Theme' target='_self'>
<select name='Theme' onChange="javascript:this.form.submit(); >
<option value =' Theme1' > Theme1
<option value=' Theme2'> Theme2
</select>
</form>
0
floflotz Messages postés 240 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 6 janvier 2006
8 janv. 2004 à 13:43
il manque une parenthèse fermante oups :p

c'est onChange="javascript:this.form.submit();">
0
perig Messages postés 358 Date d'inscription vendredi 1 novembre 2002 Statut Membre Dernière intervention 5 septembre 2006
8 janv. 2004 à 19:27
merci ca marche trés bien!!! ;)
---Perig---
Pour vous servir 8-)
Et parfois en galère :blush)
Souvent même :)
0
perig Messages postés 358 Date d'inscription vendredi 1 novembre 2002 Statut Membre Dernière intervention 5 septembre 2006
9 janv. 2004 à 21:24
Heeuuuu
Excuse-moi encore une fois, mais suite a une modification du principe de fonctionnement de mon site, j'ai un autre problème toujours sur le même formulaire
Voila pour simplifier mon site j'ai utilisé des sessions
Je transmets les changements de variable d'une page a l'autre par la méthode index.php3?var=XXX
Et en premier ligne de la page index.php3 j'ai le code suivant:
session_start();
foreach($_GET as $k=>$v)
{
$$k=$v;
session_register($k);
}
Qui permet de sauvegarder dans ma session les variables. Ce qui me permet de ne pas trimballer des adresses de fous avec 50 variables après le"?"

hors ici à la validation il ouvre la page :
index.php3?Theme=Theme
le hic c'est à la sauvegarde dans ma session il enregistre donc la variable $Theme mais avec pour contenu "Theme" et pas la valeur comprise dans "Theme"
je souhaiterais donc que le formulaire ouvre la page
index.php3?Theme=Theme1
ou
index.php3?Theme=Theme2

ou alors,
il faut modifier mon petit prog si dessus mais je ne veux pas faire un truc du type :

session_start();
foreach($_GET as $k=>$v)
{
$$k=$v;
if ($v="Theme")$$k=$$v;
session_register($k);
}

Je sais, je suis chiant mais… lol :)

---Perig---
Pour vous servir 8-)
Et parfois en galère :blush)
Souvent même :)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
floflotz Messages postés 240 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 6 janvier 2006
10 janv. 2004 à 19:57
je vois pas ce que tu veux dire !!!

>>> je souhaiterais donc que le formulaire ouvre la page
index.php3?Theme=Theme1
ou
index.php3?Theme=Theme2

ben ca le fait deja ca ! non ?
0
perig Messages postés 358 Date d'inscription vendredi 1 novembre 2002 Statut Membre Dernière intervention 5 septembre 2006
11 janv. 2004 à 09:24
Non ça ne le fait pas!!
Quand je valide, il ouvre la page index.php3?Theme=Theme
Et moi je veux index.php3?Theme=Theme1
car dans le fichier index.php3 j'ai:

session_start();
foreach($_GET as $k=>$v)
{
$$k=$v;
print $k."=".$v."
";
if ($v="Theme")$$k=$$v;
session_register($k);
}

et quand je le lance j'ai donc Theme=Theme d'affiché et je veux Theme=Theme1 ou Theme=Theme2

sinon voilà l’exemple

http://www.membres.lycos.fr/perig94/essai/LT.php3 (page qui contient le form. le form ouvre la page index qui ne contient que le petit bout de prog ci dessus)

je sais pas si c'est plus claire mais c'est plus court donc pt'étre moins le bordel

---Perig---
Pour vous servir 8-)
Et parfois en galère :blush)
Souvent même :)
0
floflotz Messages postés 240 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 6 janvier 2006
11 janv. 2004 à 18:32
normal tu as mal modifé le script !!!

c'est :

<form name='themeselect' method='get' action='index.php3' target='_self'>
<select name='Theme' onChange="javascript:this.form.submit();">
<option value='Theme1'>Berserk
<option value='Theme2'>Gundam_Wings
</select>
</form>
0
perig Messages postés 358 Date d'inscription vendredi 1 novembre 2002 Statut Membre Dernière intervention 5 septembre 2006
11 janv. 2004 à 18:40
ha!! il faut utiliser "get"
cette fois ci c'est la bonne lol
merci beaucoup
---Perig---
Pour vous servir 8-)
Et parfois en galère :blush)
Souvent même :)
0
floflotz Messages postés 240 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 6 janvier 2006
11 janv. 2004 à 18:47
ben oui qu'il faut utiliser le get !

ton script :
session_start();
foreach($_GET as $k=>$v)
{
$$k=$v;
print $k."=".$v."
";
if ($v="Theme")$$k=$$v;
session_register($k);
}

il récupère ce qui est passé en get !!!! donc si tu envoies en post, ton script récupère rien !
sinon envoie les variables en post et remplace $_GET par $_POST dans ton script !
0
perig Messages postés 358 Date d'inscription vendredi 1 novembre 2002 Statut Membre Dernière intervention 5 septembre 2006
11 janv. 2004 à 20:48
Ba oui mais "get" je sais se qu'il fait, mais "post" dans tout ca ca fait koi?
car comme j'avais pas compris la différence et que avec post avant ca marché trés bien (j'avais pas de sessions avant ) ba j'ai remis "post" ^_^*

---Perig---
Pour vous servir 8-)
Et parfois en galère :blush)
Souvent même :)
0
floflotz Messages postés 240 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 6 janvier 2006
11 janv. 2004 à 21:55
ben en fait la méthode get transmet les variables dans l'url

par exemple :
<form action="index.php" method="get">

...
</form>

quand tu valideras ce form, ton navigateur ira à la page index.php?test=valeur_que_t'as_mis_dans_le_champ_test !
mais cette méthode n'est pas pratique car la taille est limité à 255 caractères donc impossible de transmettre des grosses chaines de caractères !!

par la méthode post :
<form action="index.php" method="post">

...
</form>

quand tu valideras ce form, les variables seront transmises dans les entetes de la page index.php donc elles seront invisibles dans l'url !

voila quelques infos sur les 2 méthodes ! fais une recherche avec google pour avoir plus d'infos !
0
Rejoignez-nous