Bonjour
J'ai un tableau que je récupère à partir d'un controleur spring boot:
Ce tableau veut dire que pour chaque dossier , j'ai des entrées d'article. Par exemple pour le dossier do001, j'ai 2 articles(huile et téléphone) et pour le dossier do002 j'ai un seul article (chaussure).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 [ [{"numDossier":"do001"}, {"nomArticle":"huile","quantiteEntree":88,"typeArticle":"vidange"}, {"nomArticle":"téléphone","quantiteEntree":27,"typeArticle":"samsung"}, {"numDossier":"do002"}, {"nomArticle":"chaussure","quantiteEntree":200,"typeArticle":"soulier"}] ]
Quand j'essaie de récupérer ces données dans Ajax:
elles s'affichent sous cette forme:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 success: function(response, textStatus, jqXHR){ var result = response; $.each(result, function(i, obj) { console.log("Numéro dossier: "+obj.numDossier+"; Nom article: "+obj.nomArticle+"; Type Article: "+obj.typeArticle+"; Quantité entrée: "+obj.quantiteEntree); });
Or j'aimerai les avoir sous cette forme:Numéro dossier: do001; Nom article: undefined; Type Article: undefined; Quantité entrée: undefined
Numéro dossier: undefined; Nom article: huile; Type Article: vidange; Quantité entrée: 88
Numéro dossier: undefined; Nom article: téléphone; Type Article: samsung; Quantité entrée: 27
Numéro dossier: do002; Nom article: undefined; Type Article: undefined; Quantité entrée: undefined
Numéro dossier: undefined; Nom article: chaussure; Type Article:soulier; Quantité entrée: 200
j'ai déjà posé le problème dans la rubrique consacrée à Ajax, mais on m'a conseillé de traiter le problème coté serveur, mais je ne sais comment m'y prendre.Numéro dossier: do001
Nom article: huile; Type Article: vidange; Quantité entrée: 88
Nom article: téléphone; Type Article: Samsung; Quantité entrée: 27
Numéro dossier: do002
Nom article: chaussure; Type Article: soulier; Quantité entrée: 200
Voici le code qui me permet de regrouper les entrées par dossier:
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 @RequestMapping(value="/entrepot", method=RequestMethod.POST) public void getAllMagasinage(ModelMap model,@RequestParam(name = "numDossierRecherche") String numDossier, @RequestParam(name = "nomClientRecherche") String nomClient, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html;charset=UTF-8"); List<Dossier> listeDossiers = null; List<Entree> listeEntrees = null; long idClient = clientService.findIdClientByNomClient(nomClient); listeDossiers = dossierService.findDossierByIdClient(idClient); if (listeDossiers.isEmpty()) { response.getWriter().println("Aucun résultat trouvé!!!"); } else { List<JSONObject> entities = new ArrayList<JSONObject>(); for (Dossier d : listeDossiers) { JSONObject entity = new JSONObject(); entity.put("numDossier", d.getNumDossier()); entities.add(entity); listeEntrees = entreeService.findListEntreeByIdDossier(d.getIdDossier()); for (Entree n : listeEntrees) { JSONObject entity2 = new JSONObject(); entity2.put("nomArticle", n.getNomArticle()); entity2.put("typeArticle", n.getTypeArticle()); entity2.put("quantiteEntree", n.getQuantiteEntree()); entities.add(entity2); } } System.out.println(Arrays.toString(entities.toArray())); response.getWriter().println(Arrays.toString(entities.toArray())); } }
Merci
Partager