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 :

Classe et appel ajax [Prototype]


Sujet :

Bibliothèques & Frameworks

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Invité
    Invité(e)
    Par défaut Classe et appel ajax
    Bonjour,

    j'ai une classe javascript avec une méthode listAlbum. Cette méthode effectue un appel AJAX. Je voudrais simplement pouvoir au sein de la métho onSuccess accéder à mes attribut mais je ne sais pas comment faire.

    Voici 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
     
    var Album = Class.create( {
    	initialize : function(baseScript, elementId) {
    		this.baseScript = baseScript;
    		this.contentElt = $(elementId);
    	},
     
    	hello : function() {
    		alert(this.baseScript);
    		alert(this.contentElt);
    	},
     
    	listAlbums : function() {
    		new Ajax.Request(this.baseScript + "?action=allalbums", {
    			method :'get',
    			onSuccess : function(transport) {
    				this.contentElt.innerHTML = transport.responseText;
    			},
    			onFailure : function() {
    				alert('Something went wrong...')
    			}
    		});
    	}
    });
    le problème de ce code : this.contentElt n'est pas accessible en tant qu'attribut de ma classe, il est donc 'undefined'. Certaineemnt parce que je suis dans une autre classe (Ajax.Request).

    Comment faire ?

    merci.
    Dernière modification par vermine ; 28/09/2015 à 13h13.

  2. #2
    Membre Expert
    Avatar de gwyohm
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2007
    Messages
    925
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2007
    Messages : 925
    Par défaut
    Salut,

    Tu peux lier ta méthode onSuccess à ta classe :
    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
    var Album = Class.create( {
            // ...
    	listAlbums : function() {
    		new Ajax.Request(this.baseScript + "?action=allalbums", {
    			method :'get',
    			onSuccess : function(transport) {
    				this.contentElt.innerHTML = transport.responseText;
    			}.bindAsEventListener(this),
    			onFailure : function() {
    				alert('Something went wrong...')
    			}
    		});
    	}
    });

  3. #3
    Invité
    Invité(e)
    Par défaut
    super !!

    merci.

    Je me demande bien comment j'aurais pû trouver cette information autrement que par ce forum !

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

Discussions similaires

  1. appel Ajax dans la même instance de classe
    Par totoz dans le forum ASP.NET
    Réponses: 3
    Dernier message: 21/10/2009, 11h09
  2. Réponses: 3
    Dernier message: 30/03/2007, 10h38
  3. [Dojo] Simple data grid sans appel Ajax
    Par Den's dans le forum Bibliothèques & Frameworks
    Réponses: 2
    Dernier message: 14/12/2006, 08h23
  4. [AJAX] appel Ajax DOM
    Par MALAGASY dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 28/09/2006, 13h16
  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