Bonjour tt le monde,
Je veux creer une page jsp avec une liste deroulante
-comment creer la liste et l'alimenter à partir d'une requete sql?
- comment récupérer les donnees quand on clik sur un element de la liste?
Merci pour votre aide
Version imprimable
Bonjour tt le monde,
Je veux creer une page jsp avec une liste deroulante
-comment creer la liste et l'alimenter à partir d'une requete sql?
- comment récupérer les donnees quand on clik sur un element de la liste?
Merci pour votre aide
Quelque chose comme cela :
Dans la servlet :
Dans la JSP :Code:
1
2
3
4 List<String> taListe = new ArrayList<String>(); // initialisation de la liste request.setAttribute("ATTRIBUT_LISTE", taListe);
Il ne te reste plus qu'à renseigner ton objet graphique.Code:
1
2
3 <% ArrayList<String> taListe = (ArrayList) request.getAttribute("ATTRIBUT_LISTE"); %>
Salut. ;)
Je cree la liste dans la jsp mais je ne sais pas:Citation:
Envoyé par Mister Nono
1- comment remplir l'objet graphique (html) a partir de la liste créee ?
2- comment récupérer les données correspondantes à un élément de la liste?
:google2:
:faq:
:recherch:
:tutoriel:
:merci:
Si ta liste est une ArrayList de String :
et pour récupérer l'élément sélecté :Code:
1
2
3
4
5
6
7
8
9
10
11 <select name="itemSelected"> <% for (int i=0; i<taListe.size(); i++) { String item= (String) taListe.get(i) ; %> <option value="<%=item%>"><%=item%></option> <% } %> </select>
EDIT : Mister Nono a raison. En faisant une petite recherche, tu aurais pu trouver la réponse.;)Code:String itemSelected = request.getParameter("itemSelected") ;
Merci bcp, j'arrive à créer ma liste dans ma page jsp.
J'ai un petit problème.
c'est que lorsque je clik sur un élément de la liste le code qui est dans onchange ne s'affiche pas.
c quoi le problème?Code:
1
2
3
4
5 <select name="nom_select" onchange="<%out.println("valeur changée");%>"> <option value=1>Oui</option> <option value=2>Non</option> <option value=3>Sans Opinion</option> </select>
Merci pour votre aide
Ce ne serait pas ceci :Citation:
Envoyé par pigeon11
Salut. ;)Code:onchange='alert("valeur changée");'
comment appeler une methode de ma servlet ,lors d'un clik sur un élément de la liste?
Je ne sais pas comment insérer le code suivant dans mon select:
"<%=request.getContextPath()%>/servlet/list?action=affiche"
est ce que c comme ça :
<select name="nom_select" onchange="<%=request.getContextPath()% >/servlet/list?action=affiche"
en fait je voulais appeler la methode affiche de ma servlet
Pour exécuter la servlet, il faut mettre le tag select dans un tag form :
ou si tu veux provoquer la soumission de la servlet dès la sélection d'un élément dans la liste, tu peux utiliser l'attribut onchange :Code:
1
2
3
4
5
6
7
8 <form action="<%=request.getContextPath()%>/servlet/list"> <select name="nom_select"> <option value=1>Oui</option> <option value=2>Non</option> <option value=3>Sans Opinion</option> </select> <input type="submit" value="OK"/> </form>
Ainsi, la méthode doPost ou execute de la servlet sera exécutée.Code:
1
2
3
4
5
6
7 <form action="<%=request.getContextPath()%>/servlet/list" name="formSelect"> <select name="nom_select" onchange="document.formSelect.submit();"> <option value=1>Oui</option> <option value=2>Non</option> <option value=3>Sans Opinion</option> </select> </form>
Et dans cette méthode, tu testes si request.getParameter("nom_select") est différent de null et si c'est le cas, tu fais appel à la méthode affiche.
J'ai fais ca, et pour tester dans la methode affiche() j'ai ecrit:Citation:
Envoyé par c_nvy
pour vérifier que la valeur changeCode:
1
2
3 if ((request.getParameter("nom_select")!= null)){ System.out.println("valeur changée"); }
mais rien ne s'affiche dans la console et en plus de ça, si je clik sur non il revient a oui, il revient tjrs a la premiere valeur.
j'ai fais un petit testet il me retourne que la valeur selectionnée est nulle meme si je clik sur une autre valeur!!!Code:(if (request.getParameter("nom_select")== null)){System.out.println("la valeur selectionnée est nulle");}
Comment résoudre ce problème??
Merci bcp
Peux-tu montrer le code de la servlet ?
Dans la page jsp j'ai :Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24 public class Liste extends HttpServlet{ HttpServletRequest request; HttpServletResponse response; protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { this.request=request; this.response=response; affich(); } // *************************************** private void affich(){ if (request.getParameter("nom_select")!= null){ System.out.println("valeur changée"); } }}
Code:
1
2
3
4
5
6
7 <form action="<%=request.getContextPath()%>/servlet/list" name="formSelect"> <select name="nom_select" onchange="document.formSelect.submit();"> <option value="1">Oui</option> <option value="2">Non</option> <option value="3">Sans Opinion</option> </select> </form>
Il ne faut surtout pas déclarer de variables d'instance dans une servlet car sinon, elles seront partagées par tous les utilisateurs.
Il vaudrait mieux coder comme ceci :
Mais ça n'explique pas pour autant le fait que tu ne récupères pas la valeur de nom_select.Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 public class Liste extends HttpServlet { protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { if (request.getParameter("nom_select")!= null) { System.out.println("valeur changée"); String nom = request.getParameter("nom_select") ; this.affich(nom); } } // *************************************** private void affich(String nom) { } }
Et là, je ne vois pas pourquoi.:oops:
Merci bcp, ca marche.
Juste une petite chose :
au niveau de la liste, lorsque je clik sur une valeur, ca m'affiche "valeur changée" ainsi que la valeur choisit mais la liste revient automatiquement à la premiere valeur. Moi , je veux que lorsque je clik sur un élément de la liste que cet element reste selectioné
Merci
Ben, tu pourrais récupérer la valeur sélectée dans la jsp elle-même :
et dans chacune des options du select ajouter le code suivant :Code:
1
2
3
4
5
6
7 <% String nomSelected= null; if (request.getParameter("nom_select")!= null) { nomSelected = request.getParameter("nom_select") ; } %>
Code:<option value="1" <% if ( nomSelected.equals("1")) {%>selected<%}%>>Oui</option>
Bonjour,
J'ai un formulaire avec des zones de texte.
Est ce que c'est possible en jsp, d'envoyer le formulaire , y compris le contenu des zones de texte par mail ??
Si oui, comment ?
Mais arrête de poser des questions coup sur coup. :aie:Citation:
Envoyé par pigeon11
Quand tu n'arrives pas à réaliser quelque chose et après moultes recherches tu poses ta question et une seule question à la fois.
Maintenant on ne peux pas répondre à toutes tes questions surtout que beaucoup de celles-ci peuvent être trouvées facilement sur Internet ou dans des tutoriels, ou dans des FAQ.
Il suffit très souvent de chercher un petit peu pour trouver la solution : et cela est vrai pour tous. :mouarf:
Aller, a bientôt. ;)