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 :

Synchroniser appel Ajax et la suite de la fonction


Sujet :

jQuery

  1. #1
    Membre habitué
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2009
    Messages
    391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2009
    Messages : 391
    Points : 185
    Points
    185
    Par défaut Synchroniser appel Ajax et la suite de la fonction
    Bonjour à tous,

    je dispose d'une fonction JS qui fait un appel Ajax à un WebService et ensuite affiche une pop-up (avec le dialog de jQuery UI) contenant des informations normalement retourné par Ajax.
    Cependant, j'ai fais des test et je m'apercoit que la pop-up s'affiche AVANT qu'Ajax ait changer les données ce qui veut dire que ma pop-up ne contient pas ce que je veux.
    Savez-vous comment je pourrais synchroniser tout ça ?

    Voici ma fonction au cas où (l'alert "test" s'affiche AVANT les alert du success de l'ajax) :

    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
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
     
    function affectation_1_0(numOF_Coche, codComp) {
     
        //alert(numOF_Coche + codComp);
        var numOF = numOF_Coche[0];
        var codeComp = codComp[0];
        var numHU_Entiere = "";
     
        var tabHU_SameComp = new Array();
     
        $("#tabD .tabD_composant").each(function () {
            //alert($(this).text());
            var codeCompHU = $(this).text();
            codeCompHU = codeCompHU.substring(0, codeCompHU.indexOf(" "));
            if (codeCompHU == codeComp) {
                var numHU = $(this).attr('id').replace('tabD_composant','');
                tabHU_SameComp.push(numHU);
            }
        });
     
        numHU_Entiere = tabHU_SameComp.join(";");
     
        var popUp_BesoinT = "";
        var popUp_DejaAss = "";
        var popUp_Restant = "";
        var numLastHU = "";
     
        // on lance l'appel au serveur
        $.ajax({
            type: "POST",
            data: "{ numOF : " + JSON.stringify(numOF) + " , codeComp : " + JSON.stringify(codeComp) + ", listeHU : " + JSON.stringify(numHU_Entiere) + "}",
            url: "Assignation.aspx/doAssignation",
            contentType: "application/json; charset=utf-8",
            dataType: "json",
            success: function (msg) {
                var res = new Array();
                res = msg.d.split(';');
                //alert(msg.d);
                //alert(res[0]);
                popUp_BesoinT = res[0];
                popUp_DejaAss = res[1];
                popUp_Restant = res[2];
                numLastHU = res[3];
                alert(popUp_BesoinT);
                alert(popUp_DejaAss);
                alert(popUp_Restant);
                alert(numLastHU);
            },
            error: function () {
                alert("BAD");
            }
        });
     
        var popUp_NumOF = numOF;
        var popUp_SeqOF = $("#seqOF"+numOF).text();
        var popUp_Ref = $("#art" + numOF).text();
        var popUp_QteP = $("#qteP" + numOF).text();
        var popUp_QteR = $("#qteR" + numOF).text();
     
        alert("test");
     
        $("#tbPopUpAffectation_EnCours_NumOF").val(popUp_NumOF);
        $("#tbPopUpAffectation_EnCours_SeqOF").val(popUp_SeqOF);
        $("#tbPopUpAffectation_EnCours_Reference").val(popUp_Ref);
        $("#tbPopUpAffectation_EnCours_QteP").val(popUp_QteP);
        $("#tbPopUpAffectation_EnCours_QteR").val(popUp_QteR);
        $("#tbPopUpAffectation_Composant_BesoinT").val(popUp_BesoinT);
        $("#tbPopUpAffectation_Composant_DejaAss").val(popUp_DejaAss);
        $("#tbPopUpAffectation_Composant_Restant").val(popUp_Restant);
     
     
     
        // dialog() permet de spécifier les options de la fenêtre pop-up concernée
        // modal signifie que la pop up aura la main et que les autres éléments de la page ne pourront être accessibles
        $("#popUpAffectation").dialog({
            dialogClass: "popUpAffectation",
            autoOpen: false,
            width: 500,
            height: 650,
            show: {
                effect: "drop",
                duration: 800
            },
            hide: {
                effect: "drop",
                direction: "right",
                duration: 800
            },
            modal: true,
            buttons: {
                "OK": function () {
                    // on ferme la pop up
                    $("#popUpAffectation").dialog("close");
                    // on récupère les données du formulaire
                    var selectedValue = $("#rbtnlstAction input:checked").val();
                    PageMethods.StartImport(selectedValue);
                    return true;
                },
                "Annuler": function () {
                    $("#popUpAffectation").dialog("close");
                }
            }
        });
     
        $("#popUpAffectation").dialog("open");
    }
    Merci d'avance ^^

  2. #2
    Membre habitué
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2009
    Messages
    391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2009
    Messages : 391
    Points : 185
    Points
    185
    Par défaut
    Je suis bête >_<, j'ai déplacé la suite de ma fonction dans la suite du success et c'est bon...
    Du coup, autant que ce post ne serve pas à rien. Est-ce que vous connaissez une méthode plus propre ?

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

Discussions similaires

  1. [AJAX] L'appel Ajax ne marche plus, mais la fonction est la même !
    Par Nicotyrox dans le forum jQuery
    Réponses: 2
    Dernier message: 13/05/2015, 16h41
  2. [AJAX] Nom pour un form suite à un appel ajax
    Par lounou dans le forum jQuery
    Réponses: 1
    Dernier message: 10/05/2014, 19h22
  3. Ajouter un hook a la suite d'un appel ajax
    Par Sansdrine dans le forum WordPress
    Réponses: 0
    Dernier message: 24/05/2012, 22h58
  4. [AJAX] Synchroniser appels serveurs..
    Par jeb001 dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 19/10/2007, 09h23
  5. [AJAX] Effectuer plusieur appel ajax
    Par shwin dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 06/10/2005, 16h40

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