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 les données d'un formulaire dans une servlet


Sujet :

Servlets/JSP Java

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2014
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2014
    Messages : 11
    Points : 7
    Points
    7
    Par défaut Récupérer les données d'un formulaire dans une servlet
    Bonjour,

    J'ai fait un formulaire comportant un champ qui peut être créé automatiquement grâce à un bouton et j'aimerais récupérer les contenus. En fait, il s'agit d'un champ et d'un lien; à chaque fois que l'on clique sur le lien "ajouter un champ", il génère ce même champ. J'aimerais récupérer les contenus dans ma servlet.

    Mon problème est que dans la servlet je ne sais pas comment gérer le code suivant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    String valeur=request.getParameter("name_1")
    étant donné qu'au départ, je n'ai qu'un seul champ de name="name_1".

    Voici mon code
    Code html : 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
    <script>
    function create_champ(i) {
     
        var i2 = i + 1;
     
        document.getElementById('leschamps_' + i).innerHTML = '<input type="input" name="name_' + i + '"></span>';
        document.getElementById('leschamps_' + i).innerHTML += (i <= 40 ) ? '<br /><span id="leschamps_' + i2 + '"><a href="javascript:create_champ(' + i2 + ')">Ajouter un champs</a></span>' : '';
    }
    </script>
    <form action="" method="POST">
        <fieldset>
            <legend>Formulaire de saisie</legend>
            <input type="input" name="name_1"  required/><br />
            <span id="leschamps_2"><a href="javascript:create_champ(2)">Ajouter un champs</a>
       </fieldset>
       <input type="submit" value="Cr&eacute;er">
    Quelqu'un saurait-il m'indiquer comment faire ?

    Merci d'avance pour votre aide.

  2. #2
    Membre chevronné Avatar de jeffray03
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2008
    Messages
    1 501
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 501
    Points : 2 120
    Points
    2 120
    Par défaut
    salut,
    dans ta servlet tu fais:
    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
     
      Enumeration<String> parameterNames = req.getParameterNames();
    while (parameterNames.hasMoreElements()) {
     
      //tu recuperes le nom du parametre
    	            String paramName = parameterNames.nextElement();
                         System.out.println(paramName);
    	 //tu recupres la valeur du parametre
    	            String[] paramValues = req.getParameterValues(paramName);
    	            for (int i = 0; i < paramValues.length; i++) {
    	                String paramValue = paramValues[i];
    	               System.out.println("\t" + paramValue);
     
    	            }
     
    	        }
    eric

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2014
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2014
    Messages : 11
    Points : 7
    Points
    7
    Par défaut
    Merci beaucoup Jeffray03. Je vais essayer ça.

  4. #4
    Futur Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2014
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2014
    Messages : 11
    Points : 7
    Points
    7
    Par défaut
    salut Jeffray03,
    j'ai essayé ton code il marche ; mais je ne comprend pas.
    Disons que si j'avais 2 champs de name respectifs "name_1" et "name_2" qui se comportent tous 2 exactement comme le précédent,
    comment est-ce-que j'allais gérer puisque dans ton code je ne vois pas ou tu as fait allusion a name="name_1" comme j'ai mentionné dans mon code HTML
    merci

  5. #5
    Membre éprouvé
    Avatar de Cafeinoman
    Homme Profil pro
    Couteau suisse d'une PME
    Inscrit en
    Octobre 2012
    Messages
    628
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Couteau suisse d'une PME

    Informations forums :
    Inscription : Octobre 2012
    Messages : 628
    Points : 1 256
    Points
    1 256
    Par défaut
    En fait, chaque paramètre correspond à un champs, et la valeur du paramètre à la valeur du champs. Comme tu itéres sur les paramètres, à chaque fois que tu récupère le nom du paramètre, ça te donne le nom du champs, soit name_i, et quand tu récupère la valeur, c'est la valeur de name_i qui est récupérer.

    J'espère que ça t'eclaire...
    «Dieu ne joue pas aux dés.» - Albert Einstein. Et pan! 30 ans de retard dans la théorie quantique!
    «Tout n'est pas politique, mais la politique s'intéresse à tout.» - Nicolas Machiavel. Et surtout à ceux qui ne s'y intéressent pas.

  6. #6
    Futur Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2014
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2014
    Messages : 11
    Points : 7
    Points
    7
    Par défaut
    merci pour ton soutien Cafeinoman mais voici en fait le problème: si j'ai un truc comme ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Nom:<input type="text" name="nom"
    prenom:<input type="text" name="prenom">
    vos_choix:<input type="input" name="name_1"  required/><br />
    <span id="leschamps_2"><a href="javascript:create_champ(2)">Ajouter un champs</a>
    dans ma servlet j'ai l'habitude de faire ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    string nom=req.getParameter("nom");
    string prenom=req.getParameter("prenom");
    maintenant pour le troisième champ qui se créer automatiquement et qui a pour name="name_1" j'aimerais juste voir la ou vous faites allusion a cela. ou bien si je comprend bien lorsque l'on fait ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Enumeration<String> parameterNames = req.getParameterNames();
    alors parameterNames récupère tous les names des champs de mon formulaire et avec une boucle while on vérifie celui de ces champs qui a été créer dynamique puis on effectue le travail voulu dessus. svp veuillez excuser le débutant que je suis mais c'est juste que j'aimerais comprendre.merci

  7. #7
    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
    Points : 9 529
    Points
    9 529
    Billets dans le blog
    1
    Par défaut
    C'est ça, request.getParameterNames() récupère TOUS les champs de ton formulaire (y compris les champs "hidden" et peut-être ceux que tu pourrais rajouter à l'URL de la servlet mais ça dépendra du paramètre "method" du formulaire).
    Dans cet exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    <form action="/maServlet?idWindow=18">
    <input type="hidden" name="champ1" value="50"/>
     
    Nom <input type="text" name="nom"/> <br/>
    Prénom <input type="text" name="prenom"/> <br/>
     
    <input type="submit" value="Envoyer"/>
    </form>
    la méthode request.getParameterNames() te renverrais :
    - champ1
    - nom
    - prenom

    Par contre avec la method="post", tu aurais eu
    - idWindow
    - champ1
    - nom
    - prenom
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  8. #8
    Futur Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2014
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2014
    Messages : 11
    Points : 7
    Points
    7
    Par défaut
    Un grand merci à vous les gars je crois avoir pigé la chose maintenant
    svp un dernier truc,voila j'ai essayé de faire un test avec une servlet.
    en fait j'ai une entité(beans) Personne qui comporte les champs nom, prenom et boisson,je pensais avoir tous fait correctement mais sauf que lorsque j'essaye de persister(enregistrer) dans ma BD postgres je n'obtiens qu'un seul enregistrement.comme vous pouvez le constater sur cette captureNom : capture.png
Affichages : 5492
Taille : 24,8 Ko, je m'attendais a trouver 3 enregistrements dans ma BD apres avoir appuyer sur la button enregistrer, mais hélas je n'obtiens qu'un seul à savoir nom=steven prenom=johnson et boisson=coca-cola .j'ai manipulé ma servlet comme je pouvais mais rien ne change, elle n'effectue qu'un seul enregistrement. j'ai meme mis les codes en ligne 10 et 12 dans la boucle for mais ca n'a rien changé .svp voila le code se ma servlet et que le seigneur vous bénisse.
    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
     
    Personne p=new Personne();	
    Enumeration<String> parameterNames = request.getParameterNames();
    while (parameterNames.hasMoreElements()) {		  
    //l'on recupere le nom du parametre
    String paramName = parameterNames.nextElement();      
    //l'on recupere la valeur du parametre		 	           
    String[] paramValues = request.getParameterValues(paramName);	
    //l'on met le parametre nom de la personne	 	                    
     p.setNom(request.getParameter("nom"));        
    //l'on met le parametre prenom de la personne         
    p.setPrenom(request.getParameter("prenom"));            
    for (int i = 0; i < paramValues.length; i++){               
    //l'on met le parametre choix de la personne		  
    p.setLes_choix(request.getParameter("name_"+i));		  
    //on enregistre dans la BD          
     
    it.EnregPerson(p);                               
     }		 	               
    }

Discussions similaires

  1. Réponses: 4
    Dernier message: 06/05/2008, 19h59
  2. [ezPDF] Récupérer les données d'un formulaire dans mon pdf
    Par Lenalyon dans le forum Bibliothèques et frameworks
    Réponses: 3
    Dernier message: 28/04/2008, 15h38
  3. Récupérer les infos d'un formulaire dans une table
    Par Le_Shadock dans le forum WinDev
    Réponses: 9
    Dernier message: 18/04/2008, 09h26
  4. Récupérer les champs d'un formulaire dans une jsp
    Par lalyly dans le forum Struts 1
    Réponses: 1
    Dernier message: 19/04/2007, 10h50
  5. Réponses: 6
    Dernier message: 27/09/2006, 20h27

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