IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Servlets/JSP Java Discussion :

[JSP] Affichage selon une liste deroulante


Sujet :

Servlets/JSP Java

  1. #1
    Membre régulier
    Profil pro
    Étudiant
    Inscrit en
    Avril 2006
    Messages
    284
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2006
    Messages : 284
    Points : 90
    Points
    90
    Par défaut [JSP] Affichage selon une liste deroulante
    Bonjour,

    Voila, j'ai une table projet et une table activite
    Il existe pour un projet, plusieurs activites.

    J'ai mis mes projets dans une liste deroulante avec comme affichage, le nom des projets et comme value leur id.
    Je voudrais que selon le projet selectionnée dans la liste deroulante, cela m'affiche dans un tableau les activites concerné.
    Et si possible, que cela se fasse par un rafraichissement immediat et pas par le biais d'un bouton.

    Merci

    Voici mon code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    <%@page contentType="text/html"%>
    <%@page pageEncoding="UTF-8"%>
    <%@page language="java" import="cra.*,java.sql.*"%>
    <jsp:useBean id="projBean" class="classprojet" scope="session" />
    <jsp:useBean id="projAct" class="classactivite" scope="session" />
     
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
       "http://www.w3.org/TR/html4/loose.dtd">
     
    <html>
        <head>
            <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
            <title>GESTION DES PROJETS</title>
        </head>
        <body>
     
    <p><font color="#009900" size="5"><strong>GESTION DES ACTIVITES</strong></font></p>
    <hr>
    </font></strong></p>
     
    <FORM method="post" action="activite.jsp">
    <TR>
    <TD><B>Liste des projets</B><BR>
    <SELECT name="inpprojet">
    <% 
    projBean.dbConnect();
        if (projBean.selectProjet())
        {
            while (projBean.getElemSuiv())
            {
            String listeprojet = projBean.getElemNomChaine("nom_projet");
            String idprojet = projBean.getElemNomChaine("id_projet");    
           
    %>
    <option value='<%= idprojet %>'><%= listeprojet %></option>
    <%
            }
        }
    %> 
    </SELECT>
    </TD>
    </TR>
    <input type="submit" value="Selectionner" />
    </FORM>
    <%
    String idprojet = request.getParameter("idprojet");
     
                Class.forName("com.mysql.jdbc.Driver");
                String url = "jdbc:mysql://localhost/test";
                String user = "root";
                String pass = "nguyen";
     
                Connection con = DriverManager.getConnection(url, user, pass);
                Statement stmt = con.createStatement();
     
                ResultSet rs = stmt.executeQuery("SELECT * FROM activite WHERE id_projet=" + idprojet);
     
                if (rs != null){
                    while (rs.next())
                    {
                        String listeactivite = projAct.getElemNomChaine("nom_activite");
                        String idactivite = projAct.getElemNomChaine("id_activite");
    %>
    <TR>
    <TD><%= idactivite %></TD>
    <TD><%= listeactivite %></TD>
    </TR>
    <%
                    }
                }
     
    projBean.dbDisconnect();
    %>
     
    <hr>
    <table width="100%" border="0">
      <tr>
        <td><a href="logout.jsp">Se d&eacute;connecter</a></td>
    	<td><div align="right"><a href="projet.jsp">Projet</a></div></td>
      </tr>
    </table>
     
        </body>
    </html>

  2. #2
    Membre averti
    Inscrit en
    Avril 2004
    Messages
    503
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 503
    Points : 445
    Points
    445
    Par défaut
    Citation Envoyé par cnguyen
    Bonjour,

    Voila, j'ai une table projet et une table activite
    Il existe pour un projet, plusieurs activites.

    J'ai mis mes projets dans une liste deroulante avec comme affichage, le nom des projets et comme value leur id.
    Je voudrais que selon le projet selectionnée dans la liste deroulante, cela m'affiche dans un tableau les activites concerné.
    Et si possible, que cela se fasse par un rafraichissement immediat et pas par le biais d'un bouton.

    Merci

    Voici mon code ...
    Et donc ?
    Quelle est ta question ?
    L'interêt du doute est que cela fait avancer.
    (parenthèses)Je suis à la recherche d'un emploi sur Valence(26) et ses environs.
    mon cv:
    http://charegis.netcv.org/

  3. #3
    Membre régulier
    Profil pro
    Étudiant
    Inscrit en
    Avril 2006
    Messages
    284
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2006
    Messages : 284
    Points : 90
    Points
    90
    Par défaut
    Ma question c'est:
    Comment faire ^^
    Car avec le code que j'ai mis, cela ne m'affiche pas la liste des activites selon le projet que j'ai selectionné dans ma liste deroulante.
    Et sinon comment je pourrais faire pour ne pas passer par un click mais que la liste des activites se genere automatiquement quand je change de projet.
    Enfin j'avais tout mis mais bon...

  4. #4
    Expert éminent

    Femme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 793
    Points : 7 778
    Points
    7 778
    Par défaut
    Il faut appeler une fonction javascript via l'attribut onChange de la balise select.
    Modératrice Java - Struts, Servlets/JSP, ...

  5. #5
    Membre régulier
    Profil pro
    Étudiant
    Inscrit en
    Avril 2006
    Messages
    284
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2006
    Messages : 284
    Points : 90
    Points
    90
    Par défaut
    oui sa je m'en doutais en faites, c'etait pour etre sur, mais pk l'affichage de mes activites selon la liste deroulante ne marche pas?

  6. #6
    Expert éminent

    Femme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 793
    Points : 7 778
    Points
    7 778
    Par défaut
    Il y a même mieux, en soumettant le formulaire via l'attribut onChange de la balise select.

    Tu peux t'inspirer de l'exemple qui est à cette url.
    Modératrice Java - Struts, Servlets/JSP, ...

  7. #7
    Membre régulier
    Profil pro
    Étudiant
    Inscrit en
    Avril 2006
    Messages
    284
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2006
    Messages : 284
    Points : 90
    Points
    90
    Par défaut
    comment ouvrir le .war?? xcar ton lien m'amene a enregistrer un .war

  8. #8
    Expert éminent

    Femme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 793
    Points : 7 778
    Points
    7 778
    Par défaut
    En fait, si tu fais enregistrer, tu verras que c'est un .zip
    Modératrice Java - Struts, Servlets/JSP, ...

  9. #9
    Expert éminent

    Femme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 793
    Points : 7 778
    Points
    7 778
    Par défaut
    Si tu souhaites garder le code java dans ta jsp (même si ce n'est pas le plus propre), fais un test en donnant un nom à ton formulaire via l'attribut name et en codant l'évènement onchange dans la balise select :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <form name="tonForm" action="activite.jsp">
       <select name="idprojet" onchange="document.tonForm.submit();"/>
    ...
    Et rajoute un test sur la récupération de l'idprojet sélecté, s'il est à null ou pas, avant d'interroger la base de données.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <%
    String idprojet = request.getParameter("idprojet");
    if ( idprojet != null)
    { ...
    Modératrice Java - Struts, Servlets/JSP, ...

  10. #10
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    350
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 350
    Points : 130
    Points
    130
    Par défaut
    salut,
    tu peux utiliser le composant collection que tu replis a partir d une requete qui te retourne la liste des activités du projet selectionné.
    tu peux mettre cette requette par exemple dan sle request ou dans la session selon ton besoin.

  11. #11
    Membre régulier
    Profil pro
    Étudiant
    Inscrit en
    Avril 2006
    Messages
    284
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2006
    Messages : 284
    Points : 90
    Points
    90
    Par défaut
    Citation Envoyé par amine1980
    salut,
    tu peux utiliser le composant collection que tu replis a partir d une requete qui te retourne la liste des activités du projet selectionné.
    tu peux mettre cette requette par exemple dan sle request ou dans la session selon ton besoin.
    Comment ca?? je ne comprs pas :s

    Sinon , j'ai fais un truc qui marche mais le probleme c'est que la liste deroulante retourne toujours sur le 1er element de la liste deroulante

    voici le code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    <%@page contentType="text/html"%>
    <%@page pageEncoding="UTF-8"%>
    <%@page language="java" import="cra.*,java.sql.*"%>
    <jsp:useBean id="projBean" class="classprojet" scope="session" />
    <jsp:useBean id="actBean" class="classactivite" scope="session" />
     
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
       "http://www.w3.org/TR/html4/loose.dtd">
     
    <html>
        <head>
            <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
            <title>GESTION DES PROJETS</title>
        </head>
        <body>
     
    <p><font color="#009900" size="5"><strong>GESTION DES ACTIVITES</strong></font></p>
    <hr>
    </font></strong></p>
     
    <FORM method="post" action="activite.jsp" NAME="envoi">
    <TR>
    <TD><B>Liste des projets</B><BR>
    <SELECT name="inpprojet" ONCHANGE="document.envoi.submit();">
    <% 
    projBean.dbConnect();
        if (projBean.selectProjet())
        {
            while (projBean.getElemSuiv())
            {
            String listeprojet = projBean.getElemNomChaine("nom_projet");
            String idprojet = projBean.getElemNomChaine("id_projet");    
           
    %>
    <option value='<%= idprojet %>'><%= listeprojet %></option>
    <%
            }
        }
    %> 
    </SELECT>
    </TD>
    </TR>
    </FORM>
     
    <TABLE border="1">
    <TR>
    <TD></TD>
    <TD><B>LISTE DES ACTIVITES</B></TD>
    </TR>
    <%
    String idprojet = request.getParameter("inpprojet");
     
    int compteur = 0;
    String bgColor = "";
     
                Class.forName("com.mysql.jdbc.Driver");
                String url = "jdbc:mysql://localhost/test";
                String user = "root";
                String pass = "nguyen";
     
                Connection con = DriverManager.getConnection(url, user, pass);
                Statement stmt = con.createStatement();
     
                ResultSet rs = stmt.executeQuery("SELECT * FROM activite WHERE id_projet=" + idprojet);
     
                if (rs != null){
                    while (rs.next())
                    {
                        String listeactivite = rs.getString("nom_activite");
                        String idactivite = rs.getString("id_activite");
                        
                        if ((compteur % 2) ==0){bgColor = "#99CCFF";}
                        else{bgColor = "#CCFFFF";}
    %>
    <TR BGCOLOR="<%= bgColor %>">
    <TD>
    <A href='modifactivite.jsp?idactivite=<%= idactivite %>&listeactivite=<%= listeactivite %>'><img src=button_edit.png></A>
    <A ONCLICK='javascript:return confirm("Etes-vous sur de supprimer cet élément ?")' href='delactivite.jsp?idactivite=<%= idactivite %>'><img src=button_drop.png></A>
    </TD>
    <TD><%= listeactivite %></TD>
    </TR>
    <%
       compteur = compteur + 1;
                    }
                }
    projBean.dbDisconnect();
    %>
    </table>
    <hr>
    <table width="100%" border="0">
      <tr>
        <td><a href="logout.jsp">Se d&eacute;connecter</a></td>
    	<td><div align="right"><a href="projet.jsp">Projet</a></div></td>
      </tr>
    </table>
     
        </body>
    </html>

  12. #12
    Membre régulier
    Profil pro
    Étudiant
    Inscrit en
    Avril 2006
    Messages
    284
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2006
    Messages : 284
    Points : 90
    Points
    90
    Par défaut
    Et sinon j'ai essayer pour rendre plus lisible le code de faire pour la selection de l'activite selon l'id du projet cela :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
        public boolean selectActivite(int id) throws Exception{
            String query = "SELECT id_activite, id_projet, nom_activite FROM activite WHERE id_projet=" + id;
            instruc = conn.createStatement();
            rs = instruc.executeQuery(query);
            boolean ret = false;
            if (rs != null)
                ret = true;
            return(ret);
        }
    Mais il me dis que sa ne marche pas lorsque je l'utilise :s pourquoi??

  13. #13
    Expert éminent

    Femme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 793
    Points : 7 778
    Points
    7 778
    Par défaut
    Citation Envoyé par cnguyen
    la liste deroulante retourne toujours sur le 1er element de la liste deroulante
    Il faudrait rajouter l'attribut selected sur la balise option.

    Quelque chose dans le genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <option value='<%= idprojet %>' <% if ( idprojet.equals("inpprojet") { %> selected <%}%> >
         <%= listeprojet %>
    </option>
    A tester parce qu'il y a bien longtemps que je ne code plus du java dans mes jsp.
    Modératrice Java - Struts, Servlets/JSP, ...

  14. #14
    Membre régulier
    Profil pro
    Étudiant
    Inscrit en
    Avril 2006
    Messages
    284
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2006
    Messages : 284
    Points : 90
    Points
    90
    Par défaut
    Citation Envoyé par c_nvy
    Il faudrait rajouter l'attribut selected sur la balise option.

    Quelque chose dans le genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <option value='<%= idprojet %>' <% if ( idprojet.equals("inpprojet") { %> selected <%}%> >
         <%= listeprojet %>
    </option>
    A tester parce qu'il y a bien longtemps que je ne code plus du java dans mes jsp.
    Justement, je suis debutant en jsp, comment pourrais-je faire pour faire des pages jsp sans inclure de code java dans mes pages???
    Sinon ta technique ne marche pas :s

  15. #15
    Expert éminent

    Femme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 793
    Points : 7 778
    Points
    7 778
    Par défaut
    Faut écrire une servlet qui lit la base de données, stocke le résultat dans une collection et met la collection dans le scope request pour la rendre accessible depuis la jsp.
    Modératrice Java - Struts, Servlets/JSP, ...

  16. #16
    Membre régulier
    Profil pro
    Étudiant
    Inscrit en
    Avril 2006
    Messages
    284
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2006
    Messages : 284
    Points : 90
    Points
    90
    Par défaut
    Aurais-tu un exemple???
    Sinon vois tu une solution sur le fait que la liste deroulante revienne toujorus au premier element?

  17. #17
    Expert éminent

    Femme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 793
    Points : 7 778
    Points
    7 778
    Par défaut
    Ce serait plus simple si tu suivais un tutoriel.

    As-tu essayé ce que je t'ai donné avec l'option selected de la balise option ?
    Modératrice Java - Struts, Servlets/JSP, ...

  18. #18
    Membre régulier
    Profil pro
    Étudiant
    Inscrit en
    Avril 2006
    Messages
    284
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2006
    Messages : 284
    Points : 90
    Points
    90
    Par défaut
    Oui, je t'ai mis avant que j'avais essayé et que sa n'avais pas marché :s

  19. #19
    Expert éminent

    Femme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 793
    Points : 7 778
    Points
    7 778
    Par défaut
    Ah pardon, je n'avais pas vu.

    Le problème, c'est que désormais j'utilise exclusivement Struts et j'ai donc un peu perdu la main avec les servlets.
    Et si tu n'en as jamais fait et si je te donne un exemple, il risque d'y avoir beaucoup de choses à t'expliquer pour que tu comprennes comment ça fonctionne.
    C'est pour cela que je te conseillais de suivre un tutoriel.

    La classe classprojet, c'est toi qui l'as codé ?
    Modératrice Java - Struts, Servlets/JSP, ...

  20. #20
    Membre régulier
    Profil pro
    Étudiant
    Inscrit en
    Avril 2006
    Messages
    284
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2006
    Messages : 284
    Points : 90
    Points
    90
    Par défaut
    Ah ok, tu parlais de struts, j'ai deja étudié un peu le truc, mais en faites comme c'est mes debuts en java jsp, je voulais pas commencait avec strutsn c'est pour cela que je ne l'ai pas utilisé.
    Sinon, oui, c'est moi qui a codé classprojet.
    Je comptais faire toute mon appli en utilisant des beans pour rendre le code plus agreable mais bon il y a des requetes SELECT avec le where que je n'arrive pas a faire fonctionner :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    public boolean selectActivite(int id) throws Exception{
    String query = "SELECT id_activite, id_projet, nom_activite FROM activite WHERE id_projet=" + id;
    instruc = conn.createStatement();
    rs = instruc.executeQuery(query);
    boolean ret = false;
    if (rs != null)
    ret = true;
    return(ret);
    }
    Donc bah j'ai du mettre tout le code dans la page jsp :s

    Enfin, sinon bah pour le probleme de la javascript qui reload toujorus sur le 1er element je ne vois vraiment pas comment faire :s

Discussions similaires

  1. rechercher selon une liste deroulante
    Par yomaneoz dans le forum IHM
    Réponses: 3
    Dernier message: 03/03/2009, 18h20
  2. Réponses: 12
    Dernier message: 12/09/2007, 16h28
  3. Affichage d'une liste deroulante
    Par moktar86 dans le forum IHM
    Réponses: 6
    Dernier message: 30/04/2007, 11h11
  4. [JSP] Affichage selon liste deroulante
    Par cnguyen dans le forum Servlets/JSP
    Réponses: 1
    Dernier message: 10/06/2006, 19h21
  5. Réponses: 2
    Dernier message: 04/06/2006, 20h11

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo