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

Spring Boot Java Discussion :

Spring boot: Envoi des requêtes jquery pour gérer les Select input


Sujet :

Spring Boot Java

  1. #1
    Membre du Club Avatar de fokaana
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2018
    Messages
    88
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2018
    Messages : 88
    Points : 53
    Points
    53
    Par défaut Spring boot: Envoi des requêtes jquery pour gérer les Select input
    Bonjour Les ami(e)s

    je suis entraîne de développer un projet avec Spring boot. et un de mes modules de permet de géré les pays , les régions et les villes et pour cela je voudrais afficher les différents régions en fonction d un pays sélectionner et une ville en fonction d'une region selectionner. Voici mon code qui renvoi les regions en fonction du pays choisi
    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
    	@GetMapping(value="/state")
    	@ResponseBody
    	public List<Regions> getState(@RequestParam(name = "country" , defaultValue = "", required = false ) int valeur ,final HttpServletRequest request, Model model ) {
     
    		List<Regions> listRegion = null;
     
    			listRegion = regionService.findByPaysPaysid(countryService.findByPaysid(valeur)); 
     
    			for (Regions regions : listRegion) {
     
    				log.info("name : "+regions.getRegionname()+"id"+regions.getRegionid()+"status"+regions.getRegionstatus());
    			}			
     
    		log.warn("listof region "+listRegion);
    		model.addAttribute("listState", listRegion);
     
    		return listRegion;	
    	}
    qui marche bien car j ai un retour au niveau de mon navigateur en json

    Nom : 2019-09-19_123557.png
Affichages : 441
Taille : 130,7 Ko

    voici mon script jquery pour l'envoi de la requête

    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
    17
    18
    19
    20
    21
    22
    23
    24
         <script type="text/javascript">
                    
                    $(document).ready(function(){
                            
                            $('#country').on("change", function(){
                                    
                                    var pays_id = $('#country').val();
                                    
                                    var lien = "http://localhost:8082/district/state?country="+pays_id;
                                    console.log(pays_id);
                                $.get(lien, function(data, status){
                                     // Parcours du json
                                      /*  var result = $.parseJSON(data);
                                           $.each( result, function( key, value ) {
                                               alert(value['regionid']);
                                           });
                                           */
                                           console.log(2);
                                           alert(data);
                                     });
                            })
                    });
            
            </script>



    et mon formulaire

    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
    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
    42
    43
    44
    45
                 <form th:action="@{/district/create}" method="POST" th:object="${district}" enctype="utf-8">
     
                        <p class="error-message" th:if="${#fields.hasGlobalErrors()}"
    						th:each="error : ${#fields.errors('global')}" th:text="${error}">Validation
    						error
    					</p>
     
                        <div class="input-field col s12 m6">
                        	<label for="role" th:text="#{district.country.text}"></label>
                        	<select  name="country" id="country">
                      			<option value="" disabled selected  th:text="#{country.selectpays.text}"></option>
                      			<option th:each="country : ${listpays}"
                      					th:value="${country.paysid}"
                      					th:utext="${country.paysnom}"
                      					>
                      			</option>
                        	</select>
                        </div>
     
                        <div class="input-field col s12 m6">
                        	<label for="state" th:text="#{district.state.text}"></label>
                        	<select  name="state" id="state">
                      			<option value="" disabled selected  th:text="#{state.selectstate.text}"></option>
                        	</select>
                        </div>
     
     
                        <div class="input-field col s12 m6">
                        	<label for="city" th:text="#{district.city.text}"></label>
                        	<select  name="city" id="city">
                      			<option value="" disabled selected  th:text="#{city.selectcity.text}"></option>
                        	</select>
                        </div>
     
                        <div class="input-field col s12 m6">
                            <label for="arrondname" th:text="#{district.arrondname.text}" ></label>
                            <input type="text" th:field="*{arrondname}" id="arrondname"  required/>
                            <p th:if="${#fields.hasErrors('arrondname')}"
              						th:errors="*{arrondname}">Validation error</p>
                        </div>
     
                        <div class="input-field col s12">
           	                <button type="submit" th:text="#{district.create.text}" class="btn btn-medium btn-extented pink darken-2" >submit</button>
                        </div>
                    </form>

    le problème c'est que method $.get n'est pas envoyé car j'essaye depuis d'afficher les données en console sans succès
    Code JavaScript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     $.get(lien, function(data, status){
            		         // Parcours du json
            		          /*  var result = $.parseJSON(data);
            		               $.each( result, function( key, value ) {
            		                   alert(value['regionid']);
            		               });
            		               */
            		               console.log(2);
            		               alert(data);
            		         });

    SVP J AI BESOIN DE VOTRE AIDE

  2. #2
    Membre confirmé

    Profil pro
    Inscrit en
    Août 2008
    Messages
    1 191
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 1 191
    Points : 595
    Points
    595
    Par défaut
    bonjour,

    qu'est ce qui te revoie comme erreur avec la console de chrome ?
    sinon a tu essayé ce que cela donne avec un postman (même si ça fonctionne avec un navigateur) en faisant ta requête de type get:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    http://localhost:8082/district/state?country=40

  3. #3
    Membre du Club Avatar de fokaana
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2018
    Messages
    88
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2018
    Messages : 88
    Points : 53
    Points
    53
    Par défaut
    Non pas d erreur dans la console et en plus en je fais un J ai la liste des regions correspondant aux pays dans la console

  4. #4
    Membre confirmé

    Profil pro
    Inscrit en
    Août 2008
    Messages
    1 191
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 1 191
    Points : 595
    Points
    595
    Par défaut
    le status ?
    Code JavaScript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     $.get(lien, function(data, status){
            		         // Parcours du json
            		          /*  var result = $.parseJSON(data);
            		               $.each( result, function( key, value ) {
            		                   alert(value['regionid']);
            		               });
            		               */
            		               console.log(status);
     
            		         });

    sinon déjà avec du natif:
    Code JavaScript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    // Ici, la requête sera émise de façon synchrone.
    const req = new XMLHttpRequest();
    req.open('GET', 'lien', false); 
    req.send(null);
     
    if (req.status === 200) {
        console.log("Réponse reçue: %s", req.responseText);
    } else {
        console.log("Status de la réponse: %d (%s)", req.status, req.statusText);
    }

  5. #5
    Membre du Club Avatar de fokaana
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2018
    Messages
    88
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2018
    Messages : 88
    Points : 53
    Points
    53
    Par défaut
    Okay merci j'essaye et je vous reviens

  6. #6
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Points : 15 059
    Points
    15 059
    Par défaut
    Bonjour,

    Une piste:
    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     $.get(lien, function(data, status){
    var $select = $('#state');
    $select.find('option').remove();
    $.each(data,function(){
       $('<option>').val(this.regionid).text(this.regionname).appendTo($select);
    });
    });

    A+.

Discussions similaires

  1. Réponses: 0
    Dernier message: 10/01/2014, 13h19
  2. Réponses: 0
    Dernier message: 21/12/2011, 12h02
  3. Réponses: 9
    Dernier message: 01/12/2010, 10h17
  4. Réponses: 3
    Dernier message: 14/05/2010, 21h24

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