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.
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.
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); } }
Le HTML utilisé est le suivant :
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
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>
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
Partager