-
Liste Box dans une jsp
Bonjour,
Je voudrai afficher dans des liste box le contenu de tables stockée dans une base de donées.
J'ai reussi a affiché une liste-box mais je voudrai ,un peu a la maniere des agences de voyage remplir ma 2eme list-Box en fonction de ce que j'aurai mi dans la premiere.
Exemple, dans ma premiere list_box j'aurai le nom des pays ,et dans la seconde les villes du pays selectioné.
Si quelq'un a déja été confronté a ce probleme qu'il me fasse signe ,merci:oops:
-
Tout le monde a été confronté à ce problème, c'est pourquoi on répond au moins à un post de ce genre par jour, rien que sur ce forum.
Cherche un peu, notamment sur le forum Struts (Struts ou non, ca ne change pas grand chose au problème), tu vas trouver plein de posts comme le tien.
En résumé, tu dois mettre un submit en javascript dans l'attribut onchange de ta première liste. Il faut alors que ta servlet (ou autre) remplisse ta deuxième liste en fonction de la valeur de la première, puis redirige vers ta page. Tout ca en faisant attention à ne pas perdre de données en cours de route.
Autre méthode, que j'ai tendance à préférer dans ce genre de cas (mais je ne qui pas majoritaire je crois :? ) : tout faire côté client en javascript. Dans ce cas, au lieu de faire un submit dans ton onchange, tu remplis en javascript ta deuxième combo à partir d'un tableau javascript que tu auras préalablement initialisé comme il faut. Ca parait plus compliqué, mais ca évite souvent des ennuis. Le point un peu complexe est de créer ton tableau javascript.
-
Merci pour ton aide j'ai plus ou moins suivi ton conseil (le premier)
,j'ai donc utilisé onchange pour faire une redirection vers ma servlet de controle (ma jsp sert juste a l'affichage), qui elle va retrouver me retrouver dans la base la liste des villes en fonction du pays selectioné.
une fois la liste des villes obtenues je redirige vers ma jsp pour l'affichage,
mais je n'ai plus le pays que javai selectionné (la liste deroulante a repris sa valeur par defaut), y'a il a un moyen de garder en memoire le pays selectioné?
-
Oui : dans ta servlet, après le submit, tu mets la valeur de ton premier select (si le name de ton select est "machin", tu fais un request.getParameter("machin")) dans un attribut de requete (ou de session, ou dans un bean, tout dépend de comment tu as codé ton truc), puis tu utilises ca dans ta JSP.
Concrètement, je ne connais pas la meilleure façon de "sélectionner" par défaut un item de ton select avec des JSP simples (j'utilise généralement Struts qui simplifie ce genre de choses), au pire tu peux, en java, dans ta JSP, tester pour chaque item si la value est égal au value mémorisé, et ajouter un selected="selected" où il faut, mais il y a surement moyen de faire plus simplement.