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 :

récupérer une valeur du resultSet aprés exécution


Sujet :

Servlets/JSP Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Avril 2008
    Messages
    54
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 54
    Par défaut récupérer une valeur du resultSet aprés exécution
    bonjour à tous
    cela fait quelques jours que je bosse sur un petit problème.
    J'ai bien sur fait des recherches avant de venir, dernier recours pour moi car c'est le meilleur des forums.


    je vous explique:
    A ne pas oublier je dev en java et le code se trouve dans une jsp
    j'ai deux listes déroulantes qui doivent etre liées dynamiquement.
    De ce fait j'ai récupéré un petit script qui marche trés bien quand les données sont en dures.jusque la tt va bien.

    les problèmes arrivent,

    au lieu de ces datas en dures je fais une requete sql pour chacune des deux listes.

    le problème est que : voir code explication dessus :

    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
     
    <form name="frm"> 
    	<select size=4 name="A" id="A" onchange="gensel2();">
    	<optgroup label="A">
    	<option value="ALL">ALL</option>
    	<%
    //valeur de la BDD
            result = statement.executeQuery("SELECT distinct(A) FROM maTable   
            order by A");
            //récupere les enregistrements                                    
            while (result.next())
            {
                A= result.getString("A");
                out.print("<option>" + A+ "</option>");
                System.out.println("A= " + A);
            } 
            %>		
    	</optgroup> 
    	</select>
    	//jusqu'ici tout va bien je récupere bien tt les données de A
     
            <select size=4 name="B" id="B"> 
    	<optgroup label="B">
    	<option value="ALL">ALL</option>
    	<%
           //dans ma requete je fais une clauseWHERE pour aller récupérer la var A
         //selectionnée dans la premiere liste mais A = dernier enregistrement du  
         resultSet
            result = statement.executeQuery("SELECT distinct(B),A FROM maTable 
            where A like'"+A+"' order by B");                                                  
            while (result.next())
            {
                  B= result.getString("B");
                  out.print("<option>" + B+ "</option>");
                   System.out.println("B= " + latticecode);
            } 
                    
            %>			
    	</optgroup> 
    	</select> 
    	</form>
    puis le code js
    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
     
    <script type="text/javascript">
    function gensel2() 
    { 
         s2.length=0; 
         for( var n=0; n<liste[s1.selectedIndex].length; n++ )
         { 
            s2.length++; s2.options[s2.length-1].text=liste[s1.selectedIndex][n]; 
         } 
    }
     
            var s1=document.getElementById("techno"); 
            var s2=document.getElementById("latticecode"); 
            var liste=new Array(s2);
    </script>
    Pouvez vous m'aider svp.

  2. #2
    Membre chevronné Avatar de florentB
    Homme Profil pro
    Développeur Java
    Inscrit en
    Décembre 2006
    Messages
    332
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Décembre 2006
    Messages : 332
    Par défaut
    salut.

    C'est normal que le A que tu utilises dans ta partie JSP soit le dernier ...
    tu parcours ta liste de A, donc la liste se trouve sur le dernier élément quand tu arrives au niveau de la création de ta liste B.

    Il me parait bizzare que tu remplisses la liste B, alors que l'utilisateur n'a sélectionné aucun élément (à l'affichage de la pge).
    A mon avis, regardes plutôt du côté du javascript. c'est à ce niveau là que tu dois exécuter la deuxième requête et le remplissage de la deuxième liste.

    Sinon, juste pour la forme, si jamais tu as le temps :
    essaie d'eviter de coder dans les JSP, c'est pas top et pas maintenable.
    Tu peux essayer de regarder un coup d'oeil au modèle MVC pour bien tout séparer, et surtout un gros coup d'oeil à AJAX pour la mise à jour dynamique de tes listes.

  3. #3
    Membre averti
    Inscrit en
    Avril 2008
    Messages
    54
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 54
    Par défaut
    salut florentB,
    je te remercie pour ta réponse rapide.
    je vais recoder la fonction javascript.
    Si non pour tes observations qui sont trés pertinantes,je sais bien que d'envoyer du java dans une JSP comme tu l'as dit c pas maintenable.
    Si non pour AJAX me parait une trés bonne solution pour mon problème donc je vais m'orienter la dessus.
    Merci encore
    a+

  4. #4
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 313
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 313
    Billets dans le blog
    1
    Par défaut
    Si tes listes ont du volume, alors oui, il faudrait utiliser AJAX.
    Sinon, tu peux très bien générer une liste d'objets javascript contenant les valeurs associées et de traiter la génération de la liste B par javascript.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

Discussions similaires

  1. Réponses: 2
    Dernier message: 30/07/2013, 14h08
  2. Réponses: 0
    Dernier message: 20/03/2012, 17h34
  3. [MySQL] Récupérer le nom des champs après exécution d'une requête
    Par GanYoshi dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 10/07/2008, 12h13
  4. Réponses: 15
    Dernier message: 04/10/2007, 10h37
  5. Réponses: 2
    Dernier message: 17/03/2007, 14h11

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