probleme avec des menus deroulants

probleme avec des menus deroulants - HTML/CSS - Programmation

Marsh Posté le 26-07-2006 à 14:13:10    

bonjour a tous,
j'ai un petit probleme avec ma page html.
J'aimerai avoir un menu deroulant (jusque la facile) avec deux choix possibles mais que lorsque que je choisis le premier ou le deuxieme choix un nouveau menu deroulant apparaisse mais en fonction du choix que j'ai fait en premier.
Je m'explique avec cet exemple:
Menu deroulant 1 : choix 1 (glace) choix 2 (soda)
Menu deroulant 2 (pour les glace) : choix 1 (vanille) choix 2 (fraise).....
Menu deroulant 3 (pour les soda) : choix 1 (coca) choix 2 (sprite)....
 
Il y aurai en fait 3 menu deroulant mais l'utilisateur n'e verrai que 2.
 
j'ai essayé mais je n'arrive pas a faire apparaitre le deuxieme ou le troisieme menu.
Pourriez vous m'aidez s'il vous plait?

Reply

Marsh Posté le 26-07-2006 à 14:13:10   

Reply

Marsh Posté le 26-07-2006 à 15:39:40    

Faut que tu joues avec les évènements.
 
=> onselect="displayMonMenu(this)" dans ton premier select.
=> et en fonction du selectedIndex, tu affiches l'un ou l'autre des deux autres select

Reply

Marsh Posté le 26-07-2006 à 16:04:26    

Mouais ou c'est faisable par php, mais plus chiant à coder du fait de la nécessité de mettre un bouton submit, afin de valider l'envois des données au serveur, qui lui met à jour la page... mais au moins c'est plus facile de rajouter des réponses par le biais par exemple d'une base de données.. (m'enfin je m'emballe la :D )

Reply

Marsh Posté le 26-07-2006 à 16:17:47    

chani_t a écrit :

mais au moins c'est plus facile de rajouter des réponses par le biais par exemple d'une base de données.. (m'enfin je m'emballe la :D )


nawak :o
Avec la solution d'arjuna, tous les selects sont présents dans la page dès le début, la selection d'une valeur dans le 1er ne fait que changer la propriété style.visibility ou display des deux autres...

Reply

Marsh Posté le 26-07-2006 à 16:35:15    

anapajari a écrit :

nawak :o
Avec la solution d'arjuna, tous les selects sont présents dans la page dès le début, la selection d'une valeur dans le 1er ne fait que changer la propriété style.visibility ou display des deux autres...


ceci dit, je préfère (et de loin) ma soluce que je viens de m'amuser à coder
 
=> générable en php sans souci, suffit de générer dynamiquement ces lignes :

Citation :


root.addOption(new ListObject("Glace", "1" ));
root.options[0].addOption(new ListObject("Vanille", 1));
root.options[0].options[0].addOption(new ListObject("Chimique", 1));
root.options[0].addOption(new ListObject("Fraise", 2));
root.options[0].options[1].addOption(new ListObject("Chimique", 1));
root.options[0].options[1].addOption(new ListObject("Des bois", 2));
 
root.addOption(new ListObject("Soda", "2" ));
root.options[1].addOption(new ListObject("Coca", 1));
root.options[1].addOption(new ListObject("Sprite", 2));


 
http://www.bci-logs.fr/medias/select.htm
 
=> c'est récursif sur autant de niveaux qu'on veut
 
PS: si ça marchait sous FF, ce serait mieux, mais cet ampaffé fait rien (quelle saloperie ce truc :o)


Message édité par Arjuna le 26-07-2006 à 16:39:32
Reply

Marsh Posté le 26-07-2006 à 16:45:46    

lol, trouvé ce qui déconne... on peut pas mettre un objet dans un attribut avec FF... c'est ballo :spamafote:

Reply

Marsh Posté le 26-07-2006 à 16:45:52    


 
ola... on se calme ma solution a un intérêt... si si
 
Dans le cas de plusieurs dizaines de solution dans le premier select... et bien tu ne vas pas créer les plusieurs dizaine de select en résultant  :sarcastic:  
 
De plus dans le cas d'une génération dynamique du formulaire c'est relativement simple à faire, et certainnement moins gourmand en ressources (notament Band passante)

Reply

Marsh Posté le 26-07-2006 à 16:59:02    

chani_t a écrit :

ola... on se calme ma solution a un intérêt... si si
 
Dans le cas de plusieurs dizaines de solution dans le premier select... et bien tu ne vas pas créer les plusieurs dizaine de select en résultant  :sarcastic:  
 
De plus dans le cas d'une génération dynamique du formulaire c'est relativement simple à faire, et certainnement moins gourmand en ressources (notament Band passante)


ben carrément, si, puisque tu dois recharger "tes 4 pauvres lignes de formulaire" à chaque fois, mais surtout, les 25 Mo d'images et flash en tout genre qui se baladent sur ta page.
 
donc il vaut mieux au contraire, tout généré d'un coup le premier coup. niveau perfs, on ne voit presque aucun changement côté utilisateur au premier chargement, mais ensuite, son modem et le serveur se tournent les pouces le temps qu'il se décide entre deux parfums, alors que sinon, il te ruine ton quota de bande passante ;)
 
par contre, l'intérêt de faire tout côté server, c'est que ça marche même si on n'a pas JS activé, ou qu'on a un navigateur qui ne comprends pas le charabia qu'on a écrit. en gros, avec NS3 pour Amiga, tu peux te servir de la page :)


Message édité par Arjuna le 26-07-2006 à 17:00:04
Reply

Marsh Posté le 26-07-2006 à 17:00:00    

chani_t a écrit :

ola... on se calme ma solution a un intérêt... si si


y'avait un ":o" et le :o étant important pour souligner l'humour de mon nawak
Evidement qu'on peut le faire coté serveur et c'est même mieux, car si l'utilisateur n'a pas de js activé, cela fonctionne quand même.
 

chani_t a écrit :

Dans le cas de plusieurs dizaines de solution dans le premier select... et bien tu ne vas pas créer les plusieurs dizaine de select en résultant  :sarcastic:


Non mais je vais pas tout afficher dans la même page non plus[:spamafote]
Une page pour la selection de l'item 1 ( avec recherche toussa ),  puis une page pour la selection de l'item 2 ( avec recherche toussa ), etc.  
 

chani_t a écrit :

De plus dans le cas d'une génération dynamique du formulaire c'est relativement simple à faire, et certainnement moins gourmand en ressources (notament Band passante)


je veux pas lancer une discussion sans fin, mais ton argument est pas terrible :o
Si tu as 10 imbrications, tu vas donc faire appel à 10 fois ta page, qui va transiter 10 fois sur le résa et grosso-modo la dernière demandée fera le "poids" de la page avec tout dedans ;)
 
edit: Magic-P0wn3d

Message cité 2 fois
Message édité par anapajari le 26-07-2006 à 17:00:54
Reply

Marsh Posté le 26-07-2006 à 17:02:19    


=> je vois que t'as rien à faire. tu veux regarder mon truc pour voir si y'a une solution ? j'ai mis en commentaires les lignes qui ne se comportent pas comme prévu sous FF (enfin... plus exactement, elles ne se comprotement pas comme prévu sous IE, et ça m'arrangeait bien :ange:)

Reply

Marsh Posté le 26-07-2006 à 17:02:19   

Reply

Marsh Posté le 26-07-2006 à 17:14:09    

anapajari a écrit :

y'avait un ":o" et le :o étant important pour souligner l'humour de mon nawak


au temps pour moi ;)
 

anapajari a écrit :


Non mais je vais pas tout afficher dans la même page non plus[:spamafote]
Une page pour la selection de l'item 1 ( avec recherche toussa ),  puis une page pour la selection de l'item 2 ( avec recherche toussa ), etc.  


 
Mais le but n'était pas de garder la même page, et d'afficher les champs au fur et à mesure ?
 
 

anapajari a écrit :


je veux pas lancer une discussion sans fin, mais ton argument est pas terrible :o
Si tu as 10 imbrications, tu vas donc faire appel à 10 fois ta page, qui va transiter 10 fois sur le résa et grosso-modo la dernière demandée fera le "poids" de la page avec tout dedans ;)
 
edit: Magic-P0wn3d


 
En effet, je ne préfére pas rentrer dans ce débat :D ;)

Reply

Marsh Posté le 26-07-2006 à 17:21:05    

En fait, il y a deux façon de voir les chôses :
1) on met tout dans la page dés le départ et tant pis si le client à le temps de prendre un café avant de l'avoir reçu
2) on met le minimum et on demande le reste ensuite
 
le 2) entraine d'ailleur deux possibilités :
a) on redemande une nouvelle page à chaque choix ou changement d'avis de l'utilisateur
b) on utilise ajax pour ne demander que les nouvelles données (quitte à les garder ensuite en mémoire au cas où le client change plusieurs fois d'avis)
 
En plus de tout ça, on a plusieurs autres variantes possibles :
- on utilise ajax si le javascript est disponible et si ca n'est pas le cas, on demande une nouvelle page au serveur
- on utilise ajax si possible, sinon on récupérera une page qui contient tout dés que le client fait un premier choix
- on utilise ajax si possible, sinon on demandera une nouvelle page à chaque choix du visiteur
- on récupére tout et si ajax est disponible on change de page pour passer au mode ajax  [:anathema]  
 
PS : Evidement, la derniére ligne c'est de l'humour. :p

Message cité 1 fois
Message édité par omega2 le 26-07-2006 à 17:22:36
Reply

Marsh Posté le 26-07-2006 à 17:29:36    

omega2 a écrit :

... plein de fois ajax..;


http://img148.imageshack.us/img148/6977/uselessajax2fc.jpg
 
On va encore se retrouver avec plein de questions sur "comment qu'on fait un xmlHttpRequest?", "je comprends pas je fais un xmlHttpRequest de ma page sur elle-même et ça marche pas" ...  [:kwak]  

Reply

Marsh Posté le 26-07-2006 à 17:34:21    

Arjuna a écrit :

=> je vois que t'as rien à faire. tu veux regarder mon truc pour voir si y'a une solution ? j'ai mis en commentaires les lignes qui ne se comportent pas comme prévu sous FF (enfin... plus exactement, elles ne se comprotement pas comme prévu sous IE, et ça m'arrangeait bien :ange:)


Finalement, c'est corrigé. Un peu le bordel mais bon...

Reply

Marsh Posté le 26-07-2006 à 17:41:42    

Arjuna a écrit :

=> je vois que t'as rien à faire.


 
mdrrrrrr
t1 je sais pas vous mais j aime bien l ambiance aujourd hui =)
 

Reply

Marsh Posté le 26-07-2006 à 17:53:03    

mIRROR a écrit :

mdrrrrrr
t1 je sais pas vous mais j aime bien l ambiance aujourd hui =)


ct pas méchant hein !
 
je dis ça, parceque moi je m'emmerde depuis ce matin... mon site perso est hs à cause de mon modem.
et au taff j'ai rien à faire...
 
vu que anapajari avait l'air de poster pas mal, j'en ai déduit que lui aussi avait une baisse d'activité :spamafote:
 
à la base, que les choses soient claires : j'ai autrechose à faire que de me friter avec n'importe qui pour n'importe quoi. donc si une phrase que j'écrit peu prêter à confusion, on peut être sûr que c'est pas la version "choquante" que j'ai voulu écrire :spamafote: (d'ailleurs, je vois pas ce qu'il y a de choquant dans ma phrase ? s'il a rien à faire, à priori, il n'a rien de mieux à faire que regarder mon bug, y'a rien de méchant)

Reply

Marsh Posté le 26-07-2006 à 17:59:49    

Arjuna a écrit :

vu que anapajari avait l'air de poster pas mal, j'en ai déduit que lui aussi avait une baisse d'activité :spamafote:


Tututut moi j'ai plein de taf, mais en ce moment je fais que du ms project, des specs en word, et de la garderie de developpeurs  ... ça me laisse du temps libre ;)
 

Reply

Marsh Posté le 26-07-2006 à 18:00:52    

bah nan justement je trouvais ca bon esprit

Reply

Marsh Posté le 26-07-2006 à 20:20:15    

mIRROR a écrit :

bah nan justement je trouvais ca bon esprit


ah ok, autant pour moi ;)

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed