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

Ext JS / Sencha Discussion :

Ajax synchrone ext-basex


Sujet :

Ext JS / Sencha

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Juin 2004
    Messages
    151
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 151
    Par défaut Ajax synchrone ext-basex
    Bonjour

    J'essaye de faire une fonction pour récupérer mes infos. J'utilise basex, la bibliothèque est bien intégrée.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    function infodgd(listProId){
        Ext.Ajax.request({
            url:"service/infodgd.php",
            async :false,
            params:{LIST_PROID:listProId},
            method:"GET",
            success:function(result,request) {
                return (result.responseText);
            },
            failure:function(result,request) {
                Ext.Msg.show({title:'Error System',msg: result.responseText , icon: Ext.MessageBox.ERROR, buttons: Ext.Msg.OK})
            }
        });
    }
    Et l'appel de la fonction tmp = infodgd(listProId);

    Cela fonctionne très bien quand je ne passe pas par une fonction. J'ai regardé du coté de la synchronisation mais sans succès.

    Merci de votre aide Tio

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    37
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 37
    Par défaut
    J'ai pas trop compris ni ce que tu essayais de faire, ni quel était ton problème.
    Le truc qui me parait étrange dans ton code c'est:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    success:function(result,request) {
        return (result.responseText);
    }
    Selon moi ce callback ne fait rien...

  3. #3
    Membre confirmé
    Inscrit en
    Juin 2004
    Messages
    151
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 151
    Par défaut
    Oui je viens de m'en apercevoir
    mais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    return eval(result.responseText);
    ne retourne rien.

    La fonction est vide, j'ai fait un alert() juste avant et il s'affiche.

    Merci de votre aide
    Tio

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    37
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 37
    Par défaut
    OK, si tu fais tmp = infodgd(listProId); il n'y a aucune chance que tu récupères le resultat de ta requete AJAX (result.responseText) dans tmp.
    Le return dans ton callback "success" n'a rien a voir avec le return de ta fonction "infodgd". C'est la toute la subtilité des processus asynchrones.

    Si tu fais (non testé):

    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
    function infodgd(listProId){
        var response = null;
        Ext.Ajax.request({
            url:"service/infodgd.php",
            async :false,
            params:{LIST_PROID:listProId},
            method:"GET",
            success:function(result,request) {
                response = result.responseText;
                alert("return success" + response);
            },
            failure:function(result,request) {
                Ext.Msg.show({title:'Error System',msg: result.responseText , icon: Ext.MessageBox.ERROR, buttons: Ext.Msg.OK})
            }
        });
        alert("return infodgd" + response);
    }
    ...je pense que l'alert "return infodgd" s'affichera en premier et que response sera égal à null. Alors qu'au deuxieme alert "return success", reponse aura la bonne valeur.

  5. #5
    Membre confirmé
    Inscrit en
    Juin 2004
    Messages
    151
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 151
    Par défaut
    Merci je n'ai pas été bon la dessus.
    Ceci fonctionne mieux.

    Merci de ton aide.

    A+

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

Discussions similaires

  1. [JSF / AJAX] Rendre un appel AJAX synchrone
    Par sanchou dans le forum JSF
    Réponses: 3
    Dernier message: 25/02/2014, 14h00
  2. [AJAX] Appels Ajax synchrones et IE (7 et 8)
    Par zambizi dans le forum AJAX
    Réponses: 2
    Dernier message: 28/05/2009, 17h49
  3. [Yahoo UI] Comment faire des requêtes AJAX synchrones ?
    Par kaboume dans le forum Bibliothèques & Frameworks
    Réponses: 0
    Dernier message: 30/03/2009, 10h02
  4. [AJAX] Ajax en mode synchrone sur Safari
    Par The Blec dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 17/02/2006, 17h52

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