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 :

Portée de variables [Prototype]


Sujet :

Bibliothèques & Frameworks

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 2
    Points : 2
    Points
    2
    Par défaut Portée de variables
    Bonjour,

    Newbie avec javascript je ne me sort pas d'un problème avec la librairie prototype.js. C'est un problème de portée de variables.

    Voici le script qui pose problème.

    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
    ProblemClass = Class.create();
     
    ProblemClass.prototype = {
     
       initialize: function() {
     
          this.message = 'ceci est un message';
     
          new Ajax.Request( 'probleme.php', {method: 'get', onComplete: this.onCompleteMethode});
     
       },
     
       onCompleteMethode: function(response) {
     
          alert(this.message);
     
       }
     
    }
    La fonction alert dans la méthode onCompleteMethode renvoie 'undefined' . (j'utilise FireFox). Alors que this.message est bien défini dans la méthode initialize.

    Le HTML utilisé est le suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    <html>
      <head>
    	<script type='text/javascript' src='prototype.js'></script>
    	<script type='text/javascript' src='probleme.js'></script>
     
      </head>
      <body>
          <script>
     
            var newDummy = new ProblemClass();
     
        </script>
      </body>
    </html>
    Pour info les xml et php référencés mais sans grand intérêt.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <?php
     
    echo  file_get_contents('probleme.xml');
     
    ?>
    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
    <?xml version='1.0' encoding='UTF-8'?>
    <ajax-response>
    	<response type="element" id="">
    		<row>
    			<Title>Titre1</Title>
    			<FirstName>Prenom1</FirstName>
    			<LastName>Nom1</LastName>
    		</row>
    		<row>
    			<Title>Titre2</Title>
    			<FirstName>Prenom2</FirstName>
    			<LastName>Nom2</LastName>
    		</row>
    		<row>
    			<Title>Titre3</Title>
    			<FirstName>Prenom3</FirstName>
    			<LastName>Nom3</LastName>
    		</row>
    		<row>
    			<Title>Titre4</Title>
    			<FirstName>Prenom4</FirstName>
    			<LastName>Nom4</LastName>
    		</row>
    	</response>
    </ajax-response>

    Je vous remercie d'avance pour votre aide.

    Sincèrement,

    Roger

  2. #2
    Candidat au Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 2
    Points : 2
    Points
    2
    Par défaut
    La solution est ici : http://particletree.com/notebook/pro...-this-keyword/

    Probleme.js doit donc avoir cette tête là :

    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
    ProblemClass = Class.create();
     
    ProblemClass.prototype = {
     
       initialize: function() {
     
          this.message = 'ceci est un message';
     
          new Ajax.Request( 'probleme.php', {method: 'get', onComplete: this.onCompleteMethode.bindAsEventListener(this)});
     
       },
     
       onCompleteMethode: function(response) {
     
          alert(this.message);
     
       }
     
    }

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

Discussions similaires

  1. [FLASH MX] Portée des variables ???
    Par mic79 dans le forum Flash
    Réponses: 2
    Dernier message: 08/02/2005, 10h21
  2. Portée des variables vbscript vers ASP
    Par Immobilis dans le forum ASP
    Réponses: 3
    Dernier message: 03/11/2004, 10h14
  3. [XSL]Problème de portée des variables
    Par djulesp dans le forum XSL/XSLT/XPATH
    Réponses: 6
    Dernier message: 17/09/2004, 10h34
  4. [Portée] portée des variables
    Par parksto dans le forum Langage
    Réponses: 7
    Dernier message: 09/05/2004, 21h05
  5. [FLASH MX 2004][XML]portée de variable
    Par marco_ dans le forum Flash
    Réponses: 8
    Dernier message: 29/04/2004, 15h47

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