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:
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:
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:
1
2
3
4
5 <?php echo file_get_contents('probleme.xml'); ?>
Code:
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