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

Bibliothèques & Frameworks Discussion :

Ajax.Request et onSuccess : appel de fonction avec plusieurs arguments


Sujet :

Bibliothèques & Frameworks

  1. #1
    Nouveau Candidat au Club
    Inscrit en
    Juillet 2009
    Messages
    1
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 1
    Points : 1
    Points
    1
    Par défaut Ajax.Request et onSuccess : appel de fonction avec plusieurs arguments
    Bonjour,

    J'ai un petit probleme dans une requete ajax avec protytpe,
    j'utilise ajax.request pour récupérer un json, à partir de là pas de soucis.

    Je déclare mon onSuccess comme ci-dessous :
    onSuccess : toto, -> ou toto est ma fonction traitant le retour ajax au format jSon.

    Ma fonction toto est déclaré de cette façon :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    function toto(xhr)
    {
        var retourJson = xhr.responseJSON;
        // après c'est pas important
    }

    Tout cela fonctionne mais j'aimerai pouvoir passer des arguments à ma fonction toto dans le onSuccess : toto(ele1, ele2) mais cela ne marche pas enfin si mais ça écrase mon jSon.

    Auriez-vous une solution ?

    Merci d'avance de votre aide.

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    319
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2006
    Messages : 319
    Points : 351
    Points
    351
    Par défaut
    Salut !

    Je ne sais pas si tu as réussi à surmonter ton obstacle depuis que tu as posté ton message mais je l'espère. Concernant ta question j'ai bien l'impression que tu essayes de faire qqchose d'assez tordu... Lorsqu'un callback est appelé, en général, on a déjà tout en main donc il est inutile de passer des paramètres supplémentaires comme tu en fais le voeu. Pourrais-tu nous dévoiler un petit peu plus le cadre de ton programme ? Peut-être qu'on pourrait t'aider à faire ça autrement.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    319
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2006
    Messages : 319
    Points : 351
    Points
    351
    Par défaut
    Tiens, je viens de faire un test. Si tu veux absolument faire ce que tu décris (et si j'ai bien saisis) tu peux, et je pense que tu n'as pas le choix que d'utiliser ce genre de concepts, utiliser le currying :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    function pouet(gizmo, response) {
        console.log(gizmo, response);
    }
     
    new Ajax.Request("/index.html", {
         onSuccess: pouet.curry({x: 1, y: 2, z: 3})
    });
    Dans la console (Firebug) s'affichera qqchose comme ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "Object x=1 y=2 z=3 Object request=Object transport=XMLHttpRequest"
    P.S. : Ah, voilà, je viens de remettre la main dessus. J'ai déjà parlé du currying dans ce billet. C'est quand même un concept qu'on utilise rarement alors mets tes gants ! Le code que je t'ai mis en exemple ci-dessus me pique moi-même les yeux (surtout d'un point de vue intérêt)...

  4. #4
    Candidat au Club
    Profil pro
    Inscrit en
    Août 2006
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2006
    Messages : 2
    Points : 2
    Points
    2
    Par défaut
    Il y a une solution plus élégante pour faire du currying :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    function requestReponse(ParamPerso1,...,ParamPersoN) {
     
           return function reponse(requestReponse) {
     
                 //ma fonction de réponse
           }
    }
    Ainsi, on peut créer une infinité de fonctions

    Mais merci de m'avoir rappelé que cela était possible, je coinçait aussi sur le problèmes des réponses en AJAX avec prototype.

Discussions similaires

  1. Réponses: 5
    Dernier message: 10/02/2011, 13h59
  2. voir tout les appels de fonction avec le debugger?
    Par decksroy dans le forum Eclipse Java
    Réponses: 1
    Dernier message: 03/10/2006, 12h33
  3. [Function]Appel de fonction avec paramètre
    Par julienOriano dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 02/06/2006, 08h48
  4. Appeler une fonction avec "action" ds un
    Par drinkmilk dans le forum ASP
    Réponses: 4
    Dernier message: 20/04/2004, 15h54
  5. Appeler une fonction avec/sans parenthèses
    Par haypo dans le forum Algorithmes et structures de données
    Réponses: 8
    Dernier message: 29/12/2002, 19h48

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