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 :

insertion du résultat d'un menu déroulant dans une base de données


Sujet :

Servlets/JSP Java

  1. #1
    Membre régulier Avatar de fripette
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    241
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 241
    Points : 71
    Points
    71
    Par défaut insertion du résultat d'un menu déroulant dans une base de données
    Bonjour !
    J'ai généré un formulaire (en jsp) qui demande des informations au client.
    Ce formulaire est traité par une servlet.
    La servlet va traité les informations du formulaire et renvoyé (et en quelque sorte présenter les informations du formulaire) une autre page .jsp.

    CEPENDANT dans la deuxieme page .jsp : grâce à l'identifiant client je vais aller récuperer ds ma base des informations sur celui ci.
    il aura le choix entre plusieurs options qui se présenteront à lui dans un menu déroulant.
    Donc ce que je voudrais faire c'est récupérer lorsque le choix du client:
    mais il fait ce choix dans la page réponse jsp.

    Vous avez une idée ?

  2. #2
    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
    Pour afficher la liste déroulante, tu as dû coder un tag select avec l'attribut name :
    Donc, dans la servlet exécutée à la soumission du formulaire, tu peux récupérer l'élément sélecté par ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    String choix=request.getParameter("choix") ;

  3. #3
    Membre régulier Avatar de fripette
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    241
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 241
    Points : 71
    Points
    71
    Par défaut
    Le probléme c'est que le menu déroulant est situé dans la page réponse (celle que renvoi la servlet):

    petit schéma :
    pageformulaire.jps => servlet qui récupère les informations => pageReponse.jsp.

    Pourquoi ne pas mettre la liste déroulante dans la page Formulaire : parce dans le formulaire j'ai le code client qui va me permettre de récuperer les informations personelles et ainsi remplir le menu déroulant (avec ces info perso)

  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
    Mais que veux-tu faire après avoir récupéré l'élément sélecté ? veux-tu exécuter une nouvelle servlet ou veux-tu rester dans la même page ?

    En tout cas, pour récupérer l'élément sélecté dans une liste déroulante, celle-ci doit être dans un formulaire, ce qui signifie concrètement que la balise select doit être dans une balise form.

  5. #5
    Membre régulier Avatar de fripette
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    241
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 241
    Points : 71
    Points
    71
    Par défaut
    je veux mettre le choix de l'utilisateur dans ma base de donnée :
    puis imprimer cette même fiche.( garder la fiche intact et juste stocker le résultat de l'user).

    Je suis ok pour la façon de mettre le menu déroulant mais c'est pour le retour d'information :
    peut-on passer d'une jsp à une autre jsp (avec un bouton mais avec un forward, include ...?)
    où d'une jsp (qui est le résultat d'une servlet) est ce que je peux rebasculer vers une autre servlet ?

    Tout ceci revient à la philosophie MVC : mais ce qu'on voit dans les tuto c'est le schema : formulaire servlet reponse
    mais moi ce que je veux c'est :
    formulaire servlet formulaire 2 puis enfin reponse.
    Merci !!

  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
    Et bien, pour pouvoir récupérer l'élément sélecté dans la liste déroulante, il faut la mettre dans un formulaire, ce qui signifie concrètement mettre la balise select dans une balise form.
    Et dans l'attribut action de cette balise form, tu spécifies le path d'une servlet qui s'exécutera donc au submit du formulaire.
    Tu peux d'ailleurs soumettre le formulaire dès la sélection d'un élément de la liste déroulante via l'attribut onchange de la balise select :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <form name="selectForm" action="<%=request.getContextPath()+"/selectServlet"%>">
       <select name="choix" onchange="document.selectForm.submit();">
       ...
       </select>
    </form>
    Et dans cette servlet, tu récupères l'élément sélecté via un request.getParameter comme je t'ai indiqué précédemment.

  7. #7
    Membre régulier Avatar de fripette
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    241
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 241
    Points : 71
    Points
    71
    Par défaut
    Donc alors concrétement : on peut mettre des formulaires l'un à la suite des autres et donc en quelque sorte "enchainer" les appels de servlets différents ( ne t'inquiete pas au max j'aurai deux formulaires à la suite donc deux appels de servlets).
    Ca peut paraitre idiot mais n'oubliez pas que le premier formulaire me permet d'avoir les identifiants du client et d'aller chercher en conséquence ses informations personnelles dans la base.
    Dans le deuxieme formulaire, l'utilisateur fera ses choix à partir de l'historique de ses choix précédents.

    Par exemple : identifier le client : permet dans la premiere servlet de récupérer son adresse; son numero et ses pizzas déjà commandés.
    la réponse résultante de la premiere servlet montrera les infos du client (ad, num et pizzas)
    et dans le menu deroulant le client pourra sélectionner la pizza qu'il désire (certes par rapport à celles qu'il a déjà commandé).
    Il faudra d'ailleurs mettre un deuxieme champs pour une eventuelle pizza qu'il n'a pas encore commandé et qu'il désire.(et qui n'apparait pas dans le menu déroulant)

    Merci de vos idées !!

Discussions similaires

  1. [Conception] Insertion de champs d'un tableau dynamique dans une base de données
    Par loreleï85 dans le forum PHP & Base de données
    Réponses: 11
    Dernier message: 12/05/2011, 14h39
  2. Menu déroulant dans une fonction SI
    Par julien.laget dans le forum Excel
    Réponses: 4
    Dernier message: 16/09/2010, 15h38
  3. Réponses: 1
    Dernier message: 27/05/2010, 14h14
  4. Menu déroulant dans une cellule
    Par Djohn dans le forum Excel
    Réponses: 2
    Dernier message: 05/02/2008, 20h34
  5. Réponses: 1
    Dernier message: 23/06/2006, 11h19

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