bonjour,
je me lance avec ajax, et je suis confronté à l'imbrication de requêtes en ajax.
J'exécute une 1ère requête qui me retourne un objet json dans lequel j'ai des string, mais aussi des ID.
Je parcours ma 1ere requête avec une boucle for ( for (var i = 0; i < data.length; i++)), et j'exécute une seconde requête ajax qui est sensée me retourner la valeur correspondante à mon 1ere ID...et c'est là mon problème, je ne trouve pas la bonne méthodologie.
J'ai essayé avec le success mais sans succés...du coup, j'essaye avec le done...mais ça ne change rien.
Merci de votre aide.
Ci-dessous, un exemple de mon code pour lequel je tente de récupérer la marque du véhicule en clair à partir de l'id que je récupère dans ma 1ere requête ajax :
Finalement, j'obtiens un 'undefined' au lieu de la marque.
Code : Sélectionner tout - Visualiser dans une fenêtre à part {mesVehiculeID: 1, marqueId: 2, type: "308", immatriculation: "JU-951-DE", etatId: 2}
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 $.ajax({ type: 'GET', url: 'donnees/fichier.json', dataType: 'json' }).done(function(data){ for (var i = 0; i < data.length; i++) { var nom_div = 'div' + i; $("#ajoutdiv").append("<div><li class='col-xs-6 col-sm-3 col-md-2 col-lg-3 div_vehicule'><div id=" + nom_div + " class='divVehicules'></div></li></div>"); var marque_du_vehicule; var urlMarque = 'marques/' + data[i].marqueId + '.json'; $.ajax({ url: urlMarque, type: 'GET', dataType: 'json' }).done(function(dataMarque){ marque_du_vehicule = dataMarque.marque; var contenu = "<span class='police_texte'>" + marque_du_vehicule + "<br/>" + data[i].type+ "<br/>" + data[i].immatriculation+ "<br/>" + data[i].etatId+ "<br/></br></span>" + "<a data-toggle='modal' data-id=" + data[i].mesVehiculeID+ " class='edit_vehicule' href='#myModalModifVehicule'><img src='ressources/images/edit64.png' /></a> " + "<a href=''><img src='ressources/images/recycle.png' /></a>"; var nom_div = '#div' + i; $(nom_div).html(contenu); }); } });
Partager