Affichage d'une liste dépend une autre ds une servlet

Résolu/Fermé
Enjoy_d_silence Messages postés 20 Date d'inscription jeudi 1 août 2013 Statut Membre Dernière intervention 18 août 2014 - 15 août 2013 à 10:29
Enjoy_d_silence Messages postés 20 Date d'inscription jeudi 1 août 2013 Statut Membre Dernière intervention 18 août 2014 - 15 août 2013 à 20:31
Bonjour les gars ,
svp j'ai besoin de votre aide je veux afficher une liste des idsite et dans la meme page je veux afficher les idemployee qui depend de chaque idsite ex: si je selectione idsite 1 alors que cet Id a comme employee 1 , 2 , 3
dnc quand je selectionne 1 (select option) il me donne comme resultat les employees 1,2,3 (select option) dans la meme page jsp
plzz quest ce que vous me proposez comme code dans la page jsp et dans la servlet
merci davance
A voir également:

1 réponse

KX Messages postés 16733 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 janvier 2024 3 015
15 août 2013 à 14:51
"est ce que vous me proposez comme code dans la page jsp et dans la servlet"
Pourquoi tu parles de servlet ici ? Si tu fais du JSP, la servlet est générée automatiquement.

Je n'ai rien sous la main pour tester du JSP, mais en m'inspirant du code JavaScript Comment lier deux listes déroulantes entre elles ?, voici ce que ça pourrait donner pour ta JSP :

<%@ page import="SiteDAO"%>
<%@ page import="Site"%>
<%@ page import="EmployeDAO"%>
<%@ page import="Employe"%>

<html>
<head>
<script type="text/javascript" language="javascript">

var sites = new Array;
var employes = new Array;

<%  int i=0;
    for (Site site : SiteDAO.getAllSites()) { %>

        sites[<%= i %>] = new Array("<%= site.getId() %>", "<%= site.getName() %>");

        employes["<%= site.getId() %>"] = new Array;

    <%  int j=0;
        for (Employe employe : EmployeDAO.getAllEmployesBySite(site)) { %>
            employes["<%= site.getId() %>"][<%= j %>] = new Array("<%= employe.getId() %>", "<%= employe.getName(); %>");
    <%      j++;
        }

        i++;
    }
%>

function filltheselect(liste, choix)
{
    switch (liste)
    {
        case "sites":
            raz("employes");
        
            for (i=0; i<sites[choix].length; i++)
                document.formulaire.elements["employes"].options[i] = new Option(employes[choix][i][1],employes[choix][i][0]);
           
            break;
        
        case "employes":
            break;
    }
}
 
function raz(liste)
{
    l = document.formulaire.elements[liste].length;

    for (i=l; i>=0; i--)
        document.formulaire.elements[liste].options[i]=null;
}
</script>

</head>
<body>

<form name='formulaire'>

Choisir un site :
 
<select name='sites' onChange='filltheselect(this.name, this.value)'>
<script>
    for (i=0; i<sites.length; i++)
        document.write('<option value="'+sites[i][0]+'">'+sites[i][1]+'</option>');
</script>
</select>
<br/>

Choisir un employé :

<select name='employes' onChange='filltheselect(this.name, this.value)'>
<script>
    site0 = sites[0][0];
    for (i=0; i<employes[site0].length; i++)
        document.write('<option value="'+employes[site0][i][0]+'">'+employes[site0][i][1]+'</option>');
</script>
</select>

</form>
</body>
</html>

Remarque : de la manière dont j'ai fait la JSP, je suppose que tu disposes de quatre classes accessibles depuis ta JSP, avec au minimum ce code :

public class SiteDAO
{
    public static Collection<Site> getAllSites();
}

public class Site
{
    public String getID();
    public String getName();
}

public class EmployeDAO
{
    public static Collection<Employe> getAllEmployeBySite(Site site);
}

public class Employe
{
    public String getID();
    pulic String getName();
}
0
Enjoy_d_silence Messages postés 20 Date d'inscription jeudi 1 août 2013 Statut Membre Dernière intervention 18 août 2014
15 août 2013 à 20:31
merci infiniment ^^
0