bonjour
je suis en train de programmer une application en javascript + ajax
j'ai d�ja lu les doc + parcouru le forum + google ( � en perdre la tete )
pour comprendre mon probleme, je souhaite faire une breve description de mon programme de test sans AJAX
Soit un objet A
Soit un manager AJAX
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
6
7
8 //cette objet sert a gerer un div quelquonque function A() { this.id=0; // c'est une variable quelquonque this.getId=function(){ return id; } // renvoit la valeur de la variable this.update=function(pValue){ this.id=pValue; } }
ce morceau de code marche ( si j'ai bien tout recopier )
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 function AJAX_MANAGER() { this.tab=Array(); //tableau de nom de mes elements //fonction qui ajoute dynamiquement des objets au manager // j'utilise la fonction eval pour cela this.add=function(pName) { eval("this."+pName+"=new "+"A();"); //cela donne : this.pName=new A(); et l'execute bien } //cette fonction met a jour tout les objet en memoire this.update=function() { for(var i=0;i < this.tab.length ; i++) { //evaluer l'objet avec sa methode update eval("this."+this.tab[i]+".update("+i+");"); //cela donne : this.Nomdelobjet.update(i); } } }
le probleme c'est quand j'ajoute de l'ajax dans la partie update
car le but est de mettre a jour tous les objet A() qui sont gerer par le manager de maniere dynamique
( pour cette je peut pas les mettres en dur dans mon manager )
si qqu'un connait un site un tuto ou une portion de code qui l'a d�ja fait peut il me le dire ??? et me d�crire un peu le code si il l'a compris ?
sinon je continue mon explication ...
Rajoutons de l'ajax
modifions donc la 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
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48 function AJAX_MANAGER() { this.tab=Array(); //tableau de nom de mes elements /* creer un objet xmlhttprequest */ var xhr = null; if (typeof XMLHttpRequest != 'undefined'){ xhr = new XMLHttpRequest(); } try { xhr = new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) { try { xhr = new ActiveXObject("Microsoft.XMLHTTP"); } catch (e) {} } //fonction qui ajoute dynamiquement des objets au manager // j'utilise la fonction eval pour cela this.add=function(pName) { eval("this."+pName+"=new "+"A();"); //cela donne : this.pName=new A(); et l'execute bien } //cette fonction met a jour tout les objet en memoire this.update=function() { for(var i=0;i < this.tab.length ; i++) { xhr.onreadystatechange=function() { if (xhr.readyState == 4 && xhr.status == 200) { eval("this."+this.tab[i]+".update("+xhr.responseText+");"); } } xhr.open("GET", "http://google.fr", true); xhr.send(null); } //bien sur on rappelle la fonction car les fenetre se mette a jour setTimeout("this.update()",1000); } } }
voila alors cela ne marche pas car � l'int�rieur de la fonction
xhr.onreadystatechange=function()
{
if (xhr.readyState == 4 && xhr.status == 200)
{
eval("this."+this.tab[i]+".update("+xhr.responseText+");");
}
}
les variable semble comme inconnu et non utilisable
( il m'affiche qu'il n'ont pas de properties )
voila je peut vous �clairer si vous le souhaiter
cordialement mathieu
Partager