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 :

Actualiser le contenu d'un select selon la valeur d'un autre select sans rafraichir la page


Sujet :

Servlets/JSP Java

  1. #1
    Membre averti Avatar de Thibault92
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2011
    Messages
    45
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2011
    Messages : 45
    Par défaut Actualiser le contenu d'un select selon la valeur d'un autre select sans rafraichir la page
    Bonjour,

    Voila mon problème : J'ai deux select dans 1 formulaire dans ma JSP, le premier avec des valeurs en 'durs' et le second avec des valeurs variables selon le choix effectué sur le 1er select. Les valeurs dites variables sont alimentées par une BDD.

    Est-ce possible d'actualiser le Select 2 sans recharger la page ? Si oui quel est le principe a appliquer ?

    Mercii

  2. #2
    Membre émérite Avatar de noOneIsInnocent
    Homme Profil pro
    Inscrit en
    Mai 2002
    Messages
    1 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2002
    Messages : 1 037
    Par défaut
    Bonjour

    c'est possible à condition que les valeurs dites variables ne changent pas entretemps dans la base de données=> sinon tes données ne seront pas cohérentes
    Si par exemple tu as dans ta premiere liste un choix entre fruits et legumes
    et que dans le premier cas tu as potiron,puis choux
    que dans le deuxieme tu as orange et pomme.
    Si tu ne recharges pas ta page et que entretemps dans ta base tu as un nouveau choix associé à fruit tu ne le verras pas sur ta page.
    Donc à toi de voir.


    Si c'est le cas tu peux au premier chargement de ta page construire une map et gerer l'evénement onselect ou en change sur la premiere liste de selection, puis recuperer dans ta map le bon element
    Mais dans ce cas je te conseille plutot de regarder côté javascript


    J'espere que c'est clair ... désolé pour l'exemple pourri

  3. #3
    Membre averti Avatar de Thibault92
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2011
    Messages
    45
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2011
    Messages : 45
    Par défaut
    Merci pour ta réponse,

    Mes valeurs dites variables ne changent pas entre temps dans la base de données donc a priori je dois pouvoir appliquer ta solution mais peux tu m'en dire un peu plus sur Map et l'evenement OnSelect ??

  4. #4
    Membre averti Avatar de Thibault92
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2011
    Messages
    45
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2011
    Messages : 45
    Par défaut
    Finalement j'ai lu qu'il serait préférable d'utiliser de l'Ajax pour remplir dynamiquement le deuxieme select... Bon il ne me reste plus qu'a apprendre l'Ajax

  5. #5
    Membre averti Avatar de Thibault92
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2011
    Messages
    45
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2011
    Messages : 45
    Par défaut
    Problème résolu , pour ceux que ça intéresse une solution Ajax se trouve ici :

    ==> http://www.roseindia.net/tutorial/js..._dropdown.html

  6. #6
    Membre émérite Avatar de noOneIsInnocent
    Homme Profil pro
    Inscrit en
    Mai 2002
    Messages
    1 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2002
    Messages : 1 037
    Par défaut
    Je n'ai lu que très brievement la solution mais il me semble avoir vu des appels à la base de données dans une servlet
    je te conseille plutôt de le mettre dans une couche DAO

  7. #7
    Membre averti Avatar de Thibault92
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2011
    Messages
    45
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2011
    Messages : 45
    Par défaut
    En effet je fais appel a ma BDD dans ma servlet, mais pourquoi privilégier une couche DAO?

  8. #8
    Membre émérite Avatar de noOneIsInnocent
    Homme Profil pro
    Inscrit en
    Mai 2002
    Messages
    1 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2002
    Messages : 1 037
    Par défaut
    la première réponse evidente est le principe de factorisation / réutisabilité
    Imaginons que tu aies besoin de faire la même requete SQL dans une autre partie de ton application, est-ce que tu vas faire un copier/coller ?

    il serait quand même préférable de faire une seule méthode que tu appelles depuis plusieurs endroits
    ça te permet une meilleure maintenance, tu évites la redondance etc...

    Autre principe : le découpage en couche : ta servlet fais partie de ton contrôlleur : => si tu mets une partie de ton DAO dans ton controlleur tu n'as plus la séparation des couches

    j'espere que ça t'a aidé

  9. #9
    Membre averti
    Femme Profil pro
    Étudiant
    Inscrit en
    Juin 2011
    Messages
    45
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2011
    Messages : 45
    Par défaut
    Pour l'architecture ya un super tuto qui explique tout
    ici
    En gros ton découpage se fait en trois partie:
    La couche DAO qui gere toutes les interactions avec la BD
    LE controleur : la servlet
    et les modeles qui correspondent au classes que tu utilises

    => modele MVC!
    Bonne journée

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 0
    Dernier message: 03/10/2012, 17h19
  2. Réponses: 9
    Dernier message: 28/04/2009, 15h23
  3. Sélection d'une valeur vide pour un select
    Par Tiaps dans le forum Struts 1
    Réponses: 2
    Dernier message: 30/06/2006, 10h20
  4. Réponses: 8
    Dernier message: 22/03/2006, 17h16
  5. Selection d'une valeur dans une autre table
    Par beurnoir dans le forum Access
    Réponses: 1
    Dernier message: 13/10/2005, 12h02

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