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

jQuery Discussion :

Requêtes imbriqués [AJAX]


Sujet :

jQuery

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre actif
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 54
    Par défaut Requêtes imbriqués
    Bonjour à tous,

    j'ai un code qui me permet de sortir une liste via un appel Ajax.
    Ensuite, dans le success de l'ajax, je lance un ajax pour chaque élément de la liste.
    Malheureusement, cela ne fonctionne pas.
    Voici en gros mon code :
    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
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
     
    $.ajax({
                url: "../controleurs/get_liste_service.php",
                type: "POST",
                success: function(response) {
                    var services=$.parseJSON(response);
                    var nbre=services.length;
                    console.log("Nbre de service : "+nbre);
     
                    //initialisation de la barre de progression
                    $('#progress_service').attr('aria-valuemax', nbre);
                    $('#progress_service').css('width', '0%').attr('aria-valuenow', '0');
     
                    var resultats="";
                    for (i=0;i<nbre;i++)
                    {
                        console.log(services[i][3]+":"+services[i][4]);
                        if(services[i][4]>0 && services[i][4]!="")
                        {
                            $.ajax({
                                url: "../controleurs/controle_ad_service.php",
                                type: "POST",
                                async: false,
                                data: {
                                    idgrh:services[i][4],
                                },
                                success: function(reponse) {
                                    var result = $.trim(reponse);
                                    console.log(services[i][3]+" : "+result);
                                    if (result == "1") {
                                        //service trouvé
                                        console.log(services[i][3]+" : trouvé");
                                        $("#result_service").append('<div class="alert alert-success" role="alert"><strong>'+services[i][3]+'</strong> - Correct<button class="btn btn-danger btn-sm" type="button" style="float:right">Résoudre</button></div>');
                                    }
                                    else
                                    {
                                        //service manquant
                                        console.log(services[i][3]+" : manquant");
                                        $("#result_service").append('<div class="alert alert-danger" role="alert"><strong>'+services[i][3]+'</strong> - Le service n\'existe pas dans l\'AD<button class="btn btn-danger btn-sm" type="button" style="float:right">Résoudre</button></div>');
                                    }
                                    $('#progress_service').css('width', ((i+1)*100/nbre)+'%').attr('aria-valuenow', i+1);
                                },
                                error: function (error) {
                                    console.log(error);
                                    $("#result_service").append(JSON.stringify(error)+"<br><br><br>");
                                }
                            });
                        }
                    }
                }
            });
    Auriez-vous une idée ?

  2. #2
    Expert confirmé
    Avatar de Watilin
    Homme Profil pro
    En recherche d'emploi
    Inscrit en
    Juin 2010
    Messages
    3 100
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : En recherche d'emploi

    Informations forums :
    Inscription : Juin 2010
    Messages : 3 100
    Par défaut
    Je dirais que c’est un problème de nommage.
    • Tu utilises deux fois le même nom d’argument response.
    • Ligne 20, tu utilises la variable result au lieu de resultat.
    La FAQ JavaScript – Les cours JavaScript
    Touche F12 = la console → l’outil indispensable pour développer en JavaScript !

  3. #3
    Membre actif
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 54
    Par défaut
    J'ai fais la modif mais cela ne change rien.

    ma boucle for se fait bien mais ça n’exécute jamais le 2e ajax

    Edit :
    il fait bien le ajax mais il déclenche pas le success mais le error.
    Par contre, le error est pas très parlant...

    En regardant les flux réseau du navigateur, il semble qu'il n'y ai aucun accès au fichier en url de l'ajax

  4. #4
    Membre actif
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 54
    Par défaut
    Code mis à jour pour vous montrer le code exact que j'utilise avec tous les détails (car au départ j'avais enlevé pas mal de trucs)

  5. #5
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 211
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 211
    Par défaut
    Bonjour,
    pas regardé ton code plus avant mais je remplacerais
    par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    for (let i = 0; i < nbre; i++)
    let devrait faire la différence comme tu utilises la variable i dans tes requêtes asynchrones

  6. #6
    Membre actif
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 54
    Par défaut
    Merci pour ta réponse.

    Malheureusement, cela n'a pas résolu mon problème.
    Pour info, le fichier appelé par mon ajax est bien fonctionnel quand je l'appelle en direct.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Contourner les requêtes imbriqués ?
    Par Sqilias dans le forum Langage SQL
    Réponses: 6
    Dernier message: 13/07/2013, 10h29
  2. Réponses: 3
    Dernier message: 14/05/2012, 11h55
  3. Sous requêtes imbriqués simple
    Par Cladjidane dans le forum Langage SQL
    Réponses: 3
    Dernier message: 17/09/2009, 12h04
  4. requêtes imbriqués avec comptage
    Par dfraisse dans le forum Requêtes et SQL.
    Réponses: 8
    Dernier message: 29/10/2007, 10h30
  5. requête avec SELECT imbriqués...
    Par dj_lil dans le forum Langage SQL
    Réponses: 4
    Dernier message: 18/07/2005, 11h21

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