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 :

Attendre la fin d'un appel Ajax fait dans une fonction


Sujet :

jQuery

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de grinder59
    Inscrit en
    Septembre 2005
    Messages
    710
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 710
    Par défaut Attendre la fin d'un appel Ajax fait dans une fonction
    Bonjour,

    Je suis en train de développer un ensemble de pages construites de la même façon :
    - appel ajax pour récupérer les colonnes d'un tableau à afficher
    - affichage de la ligne d'en tête du tableau
    - affichage d'une sous ligne avec un champs de recherche pour chaque colonne
    - affichage des données
    - affichage de la ligne footer
    - affichage de la pagination et du nombre de résultat

    Le problème est que l'exécution des fonctions dépend de la première instruction qui ramène les colonnes qui compose le tableau.

    Alors évidemment, je pourrai faire : un appel à $.ajax et mettre l'appel à mes autres fonctions dans la partie .done, mais comme je veux factoriser mon code, j'ai créé une fonction qui fait cet appel
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    	$.ajax({
    		url : url_recuperation_colonnes
    		type 	: 'post',
    		dataType: 'json'
    	})
    	.done(function( retour ) {
                affichageEnTeteTable();
                affichageSousLigneChampsRecherche();
                ...
    	})
    Le truc c'est que je veux factoriser ce code qui est appelé dans toutes les pages. J'ai donc créé une fonction pour ce faire :

    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
     
     
    var ListeColonnes = '';
     
    	function getHeaders(){
    	    $.ajax({
    		url : url_recuperation_colonnes
    		type 	: 'post',
    		dataType: 'json'
    	    })
    	    .done(function( retour ) {
                    ListeColonnes = retour;
    	    })
    	}
     
            affichageEnTeteTable(ListeColonnes);
            affichageSousLigneChampsRecherche(ListeColonnes);
            ...
    Le souci est que la fonction affichageEnTeteTable s'exécute alors que la variable ListeColonnes n'est pas initialisée.
    J'ai essayé d'utiliser l'objet Callbacks de jQuery, mais cela ne fonctionne pas car la fonction getHeaders semble renvoyer un OK alors que l'appel ajax n'est pas terminée. Cela me semble normal car il est asynchrone. j'ai donc essayé de faire un appel synchrone (async : false), mais l'option est dépréciée.

    Auriez-vous une idée de comment faire ?

    Merci de votre aide !

  2. #2
    Modérateur

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

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 209
    Par défaut
    Bonjour,
    j'ai bien du mal à comprendre ce que tu veux "factoriser" !

    Ta première démarche est cohérente et il te faut simplement passer le nombre de colonnes en paramètre.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    $.ajax({
        url: url_recuperation_colonnes
        type: 'post',
        dataType: 'json'
      })
      .done(function(retour) {
        affichageEnTeteTable( retour);
        affichageSousLigneChampsRecherche( retour);
        ...
      })

Discussions similaires

  1. appel du php dans une fonction javascript
    Par manal00 dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 1
    Dernier message: 05/06/2012, 11h37
  2. Problème d'appel de fichiers dans une fonction
    Par guilome35 dans le forum Tkinter
    Réponses: 1
    Dernier message: 19/06/2010, 08h17
  3. [Débutant] Appel de variable dans une fonction déjà défini dans un prog principal
    Par hollowdeadoss dans le forum MATLAB
    Réponses: 8
    Dernier message: 19/09/2008, 13h02
  4. appeler le destructeur dans une fonction
    Par asoka13 dans le forum C++
    Réponses: 3
    Dernier message: 12/05/2008, 00h24
  5. Réponses: 8
    Dernier message: 14/12/2006, 23h37

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