J'essaie de faire des appels ajax imbriqués, mais l'itération ne fonctionne pas: disons que j'ai 2 entreprises avec la société numéro 1 ayant 2 contacts et la société numéro 2 ayant 3 contacts. Je ne peux pas comprendre pourquoi mais le code ci-dessous affiche les deux noms de sociétés suivies par les cinq noms de contact: il est pas imbriqué ....jQuery Ajax appels imbriqués ne fonctionne pas
<script type="text/javascript">
$(function() {
$('#searchbutton').bind('click', function (event) {
$("#result > h4, #result > p").remove();
$("<p>Loading...</p>").appendTo($("#result"));
$.ajax({
type: "GET",
dataType: "jsonp",
cache: true,
url: "http://localhost/archilab/archilabdirectory.svc/",
data: ("tag=" + $("#searchstring").val()),
success: function (companies) {
$("#result > p").remove();
$.each(companies, function() {
var outer = this;
$("<h4>", { text: outer.Name + " (" + outer.Perimeter + ")" }).hide().appendTo($("#result")).show(4000, function() {
$.ajax({
type: "GET",
dataType: "jsonp",
cache: true,
url: "http://localhost/archilab/archilabdirectory.svc/" + outer.Name + "/contacts/",
success: function (contacts) {
$(contacts).each(function() {
$("<p>", { text: this.FirstName + " " + this.LastName }).hide().appendTo($("#result")).show();
});
}
})
});
});
}
});
})
});
</script>
Au lieu de lancer plusieurs appels ajax, pourquoi ne pas associer les noms et les données de contacts dans une seule réponse JSON pour une seule requête ajax? – Chandu
Et si, pour une raison étrange, vous en avez besoin de deux, s'il vous plaît s'il vous plaît s'il vous plaît écrire des fonctions. Toujours coder DRY (Ne vous répétez pas). Chaque fois que vous pouvez tourner votre code sur le côté et voir les montagnes, vous devez refactoriser. –