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

JavaScript Discussion :

[AJAX] Utilisation AJAX avec IE


Sujet :

JavaScript

  1. #21
    Membre éclairé Avatar de Death83
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    1 667
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 667
    Points : 878
    Points
    878
    Par défaut
    Citation Envoyé par FremyCompany
    Problème déjà rencontré et déjà corrigé, si il s'agit de ce que je pense...
    Je sais pas ou vous trouvez ce code mais il est FAUX !!!
    Lol, si vous pouviez écrire au site chez qui vous trouvez le code...
    Ca évitera sans doute à bien d'autres d'avoir le même pb
    Code corrigé :
    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
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
     
    function getXhr()
    {
    	var xhr=null;
    	if(window.XMLHttpRequest) // Firefox et autres
    		xhr =new XMLHttpRequest(); 
    	else if(window.ActiveXObject)
    	{ // Internet Explorer 
    		try 
    		{
    				xhr = new ActiveXObject("Msxml2.XMLHTTP");
    		} 
    		catch (e) 
    		{
    			xhr = new ActiveXObject("Microsoft.XMLHTTP");
    		}
    	}
    	else 
    	{ // XMLHttpRequest non supporté par le navigateur 
    		alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest..."); 
    		xhr = false; 
    	} 
    	return xhr;
    }
    function go(envoi,idcible,idcibleeff,page_ajax)
    {
    	var xhr = getXhr()
    	// On défini ce qu'on va faire quand on aura la réponse
    	xhr.onreadystatechange = function()
    	{ 
    				if (this.readyState != 4 && envoi!='')  
    				{
    					switch(idcibleeff)
    					{
    						case 'rien':
    							document.getElementById(idcible).innerHTML='<td colspan=2 class="aligncenter">Chargement...</td>';
    						break;
    						case 'rien2':
    						break;
    						case 'dragndrop':
    						break;
    						default:	
    							document.getElementById(idcible).innerHTML='<div class="chargement">Chargement...</div>';
    						break;
    					}
    			    }
    				else
    				{
     
    				}
     
    			// On ne fait quelque chose que si on a tout reçu et que le serveur est ok
    			if(this.readyState == 4 && this.status == 200)
    			{	
    					text_renv = this.responseText;
    					if(envoi!='')
    					{
     
    							//cas ou il faut effacer un element
    							document.getElementById(idcible).innerHTML=text_renv;
    							if(idcibleeff!='rien')
    							{
    								document.getElementById(idcibleeff).innerHTML='';
    							}
    							else
    							{
    								/* if(vide==1)
    								{
    									alert('remplie');
    								} */
    							}
     
    					}
    			}
     
    	}	
     
    	xhr.open("GET",page_ajax+escape(envoi),true);
    	//xhr.open("GET",page_ajax+envoi,true);                      ca si la fonction deconne
    	xhr.send(null); 
    }

    J'ai essayé avec ca et ca fait toujours la même chose sous IE et ca marche plus sous Firefox

    ??

  2. #22
    Membre expert
    Avatar de FremyCompany
    Profil pro
    Étudiant
    Inscrit en
    Février 2006
    Messages
    2 532
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2006
    Messages : 2 532
    Points : 3 239
    Points
    3 239
    Par défaut
    Enlève ca : && envoi!=''
    Ca n'a pas lieu d'être et de toute facon, ca ne marchera plus !

    EDIT :
    --------
    Ah non, je pige ou est le (un) problème !!!
    Dsl, j'avais corrigé mais j'ai pas regardé attentivement ce que du faisait...
    Avant le xhr.send(null), tape la ligne suivante : xhr.envoi=envoi
    Et puis dans la fonction onreadystatechange, remplace tous les "envoi" par "this.envoi"...

    Encore un détail : remplace "text_renv = this.responseText;" par "var text_renv = this.responseText;"

  3. #23
    Membre éclairé Avatar de Death83
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    1 667
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 667
    Points : 878
    Points
    878
    Par défaut
    Ca marche toujours pas.

    Pour l'instant j'ai cette feuille la:

    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
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
     
    function getXhr()
    {
    	var xhr=null;
    	if(window.XMLHttpRequest) // Firefox et autres
    		xhr =new XMLHttpRequest(); 
    	else if(window.ActiveXObject)
    	{ // Internet Explorer 
    		try 
    		{
    				xhr = new ActiveXObject("Msxml2.XMLHTTP");
    		} 
    		catch (e) 
    		{
    			xhr = new ActiveXObject("Microsoft.XMLHTTP");
    		}
    	}
    	else 
    	{ // XMLHttpRequest non supporté par le navigateur 
    		alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest..."); 
    		xhr = false; 
    	} 
    	return xhr;
    }
    function go(envoi,idcible,idcibleeff,page_ajax)
    {
    	var xhr = getXhr();
    	// On défini ce qu'on va faire quand on aura la réponse
    	xhr.onreadystatechange = function()
    	{ 
    				if (this.readyState != 4 && this.envoi!='')  
    				{
    					switch(idcibleeff)
    					{
    						case 'rien':
    							document.getElementById(idcible).innerHTML='<td colspan=2 class="aligncenter">Chargement...</td>';
    						break;
    						case 'rien2':
    						break;
    						case 'dragndrop':
    						break;
    						default:	
    							document.getElementById(idcible).innerHTML='<div class="chargement">Chargement...</div>';
    						break;
    					}
    			    }
    				else
    				{
     
    				}
     
    			// On ne fait quelque chose que si on a tout reçu et que le serveur est ok
    			if(this.readyState == 4 && this.status == 200)
    			{	
    					text_renv = this.responseText;
    					if(this.envoi!='')
    					{
     
    							//cas ou il faut effacer un element
    							document.getElementById(idcible).innerHTML=text_renv;
    							if(idcibleeff!='rien')
    							{
    								document.getElementById(idcibleeff).innerHTML='';
    							}
    							else
    							{
    								/* if(vide==1)
    								{
    									alert('remplie');
    								} */
    							}
     
    					}
    			}
     
    	}	
     
    	xhr.open("GET",page_ajax+escape(envoi),true);
    	//xhr.open("GET",page_ajax+envoi,true);                      ca si la fonction deconne
    	xhr.envoi=envoi;
    	xhr.send(null); 
    }

  4. #24
    Membre expert
    Avatar de FremyCompany
    Profil pro
    Étudiant
    Inscrit en
    Février 2006
    Messages
    2 532
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2006
    Messages : 2 532
    Points : 3 239
    Points
    3 239
    Par défaut
    lol, l'histoire du "envoi", fallait l'appliquer aussi à tous les paramètres de ta méthode.... (idcible, ...)

    En fait le problème, c'est que tu oublies qu'une méthode event ne se gère pas dans le contexte de la méthode qui l'a créée....

    En gros, ne fait jamais ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    function X(font, color) {
       font.onclick=function() {font.color=color; }
    }
    Mais fait plutot cela :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    function X(font, color) {
       font.Color=color;
       font.onclick=function() {this.color=this.Color; }
    }

  5. #25
    Membre éclairé Avatar de Death83
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    1 667
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 667
    Points : 878
    Points
    878
    Par défaut
    J'ai essayé de mettre tout les argument précédé de this. mais ca ne marche plus du tout .
    Qu'est ce qui est faux?

    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
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    function getXhr()
    {
    	var xhr=null;
    	if(window.XMLHttpRequest) // Firefox et autres
    		xhr =new XMLHttpRequest(); 
    	else if(window.ActiveXObject)
    	{ // Internet Explorer 
    		try 
    		{
    				xhr = new ActiveXObject("Msxml2.XMLHTTP");
    		} 
    		catch (e) 
    		{
    			xhr = new ActiveXObject("Microsoft.XMLHTTP");
    		}
    	}
    	else 
    	{ // XMLHttpRequest non supporté par le navigateur 
    		alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest..."); 
    		xhr = false; 
    	} 
    	return xhr;
    }
    function go(envoi,idcible,idcibleeff,page_ajax)
    {
    	var xhr = getXhr();
    	// On défini ce qu'on va faire quand on aura la réponse
    	xhr.onreadystatechange = function()
    	{ 
    				if (this.readyState != 4 && this.envoi!='')  
    				{
    					switch(this.idcibleeff)
    					{
    						case 'rien':
    							document.getElementById(this.idcible).innerHTML='<td colspan=2 class="aligncenter">Chargement...</td>';
    						break;
    						case 'rien2':
    						break;
    						case 'dragndrop':
    						break;
    						default:	
    							document.getElementById(this.idcible).innerHTML='<div class="chargement">Chargement...</div>';
    						break;
    					}
    			    }
    				else
    				{
     
    				}
     
    			// On ne fait quelque chose que si on a tout reçu et que le serveur est ok
    			if(this.readyState == 4 && this.status == 200)
    			{	
    					this.text_renv = this.responseText;
    					if(this.envoi!='')
    					{
     
    							//cas ou il faut effacer un element
    							document.getElementById(this.idcible).innerHTML=this.text_renv;
    							if(this.idcibleeff!='rien')
    							{
    								document.getElementById(this.idcibleeff).innerHTML='';
    							}
    							else
    							{
    								/* if(vide==1)
    								{
    									alert('remplie');
    								} */
    							}
     
    					}
    			}
     
    	}	
     
    	xhr.open("GET",page_ajax+escape(this.envoi),true);
    	//xhr.open("GET",page_ajax+envoi,true);                      ca si la fonction deconne
    	xhr.envoi=envoi;
    	xhr.send(null); 
    }

  6. #26
    Membre expert
    Avatar de FremyCompany
    Profil pro
    Étudiant
    Inscrit en
    Février 2006
    Messages
    2 532
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2006
    Messages : 2 532
    Points : 3 239
    Points
    3 239
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    	xhr.open("GET",page_ajax+escape(this.envoi),true);
    	//xhr.open("GET",page_ajax+envoi,true);                      ca si la fonction deconne
    	// Ajout de données au XHR : envoi,idcible,idcibleeff,page_ajax
    	xhr.envoi=envoi;
    	xhr.idcible=idcible
    	xhr.idcibleeff=idcibleeff
    	xhr.page_ajax=page_ajax
    	xhr.send(null);
    Mais au fait, quelle est le nom de l'erreur que tu obtiens (IE et FF)

  7. #27
    Membre éclairé Avatar de Death83
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    1 667
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 667
    Points : 878
    Points
    878
    Par défaut
    je rajoute ca au code au dessus?

    car ca ne marche toujours pas .

  8. #28
    Membre éclairé Avatar de Death83
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    1 667
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 667
    Points : 878
    Points
    878
    Par défaut
    SOus FF il me dit:

    document.getElementById(this.idcible) as no property
    et en enlevant le this. il met chargement... mais ne renvoie aucun résulat et aucune erreur .

  9. #29
    Membre expert
    Avatar de FremyCompany
    Profil pro
    Étudiant
    Inscrit en
    Février 2006
    Messages
    2 532
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2006
    Messages : 2 532
    Points : 3 239
    Points
    3 239
    Par défaut
    Oui, c'est normal car FF accepte ce que j'avais dit que tu ne pouvais pas faire (l'histoire du font de tu color) mais pas IE...

    J'avoue, j'ai jamais fait un truc comme toi...
    C'est ces variables de fonction qui pose le problème...
    Je file voir un truc, puis je te donne une réponse sur la manière qu'on pourrait utiliser pour regler le problème..

  10. #30
    Membre éclairé Avatar de Death83
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    1 667
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 667
    Points : 878
    Points
    878
    Par défaut
    Oki merci,

    mais je trouve ca quand même bizarre que ca marche dans certain cas sous IE et d'autre pas alors que je ne vois pas ce qui différencie les lignes qui marches de celles qui ne marche pas.

  11. #31
    Membre expert
    Avatar de FremyCompany
    Profil pro
    Étudiant
    Inscrit en
    Février 2006
    Messages
    2 532
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2006
    Messages : 2 532
    Points : 3 239
    Points
    3 239
    Par défaut
    1/ Tu remplace les xhr.envoi=envoi, ... par XhrsData[x].envoi=envoi, ...
    2/ Juste avant le XhrsData[x].envoi=envoi, tu mets :
    3/ Tu met ceci en déclaration globale (hors méthodes)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var XhrsData=new Array();
    4/ Tu mets ceci comme fonction onreadystatechange :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    var func=function() {
       var x = [[X]];
       // TonCode;
       // pour acceder à envoi, utilise XhrsData[x].envoi
    }
    var func = ("" + func + "").replace("[[X]]",x)
    xhr.onreadystatechange=eval(func)
    Si tu me laisse 2 minutes, je le fais pour toi et je teste pour voir si ca marche...

  12. #32
    Membre expert
    Avatar de FremyCompany
    Profil pro
    Étudiant
    Inscrit en
    Février 2006
    Messages
    2 532
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2006
    Messages : 2 532
    Points : 3 239
    Points
    3 239
    Par défaut
    Si tu pouvais tester pour moi : j'ai pas de site sur lequel faire mes tests...
    Si ca ne marche pas, donne moi les message d'erreurs....
    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
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    var XhrsData=new Array();
     
    function getXhr()
    {
    	var xhr=null;
    	if(window.XMLHttpRequest) // Firefox et autres
    		xhr =new XMLHttpRequest(); 
    	else if(window.ActiveXObject)
    	{ // Internet Explorer 
    		try 
    		{
    				xhr = new ActiveXObject("Msxml2.XMLHTTP");
    		} 
    		catch (e) 
    		{
    			xhr = new ActiveXObject("Microsoft.XMLHTTP");
    		}
    	}
    	else 
    	{ // XMLHttpRequest non supporté par le navigateur 
    		alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest..."); 
    		xhr = false; 
    	} 
    	return xhr;
    }
     
    function go(envoi,idcible,idcibleeff,page_ajax)
    {
    	var xhr = getXhr()
    	// On défini ce qu'on va faire quand on aura la réponse
    	var func = function()
    	{ 
    				var x = [[X]];
    				if (this.readyState != 4 && XhrsData[x].envoi!='')  
    				{
    					switch(XhrsData[x]idcibleeff)
    					{
    						case 'rien':
    							document.getElementById(XhrsData[x].idcible).innerHTML='<td colspan=2 class="aligncenter">Chargement...</td>';
    						break;
    						case 'rien2':
    						break;
    						case 'dragndrop':
    						break;
    						default:	
    							document.getElementById(XhrsData[x].idcible).innerHTML='<div class="chargement">Chargement...</div>';
    						break;
    					}
    			    }
    				else
    				{
     
    				}
     
    			// On ne fait quelque chose que si on a tout reçu et que le serveur est ok
    			if(this.readyState == 4)
    			{	
    					var text_renv = this.responseText;
    					if(XhrsData[x].envoi!='')
    					{
     
    							//cas ou il faut effacer un element
    							document.getElementById(XhrsData[x].idcible).innerHTML=text_renv;
    							if(XhrsData[x].idcibleeff!='rien')
    							{
    								document.getElementById(XhrsData[x].idcibleeff).innerHTML='';
    							}
    							else
    							{
    								/* if(vide==1)
    								{
    									alert('remplie');
    								} */
    							}
     
    					}
    			}
     
    	}
     
    	var x = XhrsData.length;
    	func = ("" + func + "").replace("[[X]]",x)
    	xhr.onreadystatechange=eval(func)
     
    	XhrsData[x] = {}
    	XhrsData[x].envoi=envoi;
    	XhrsData[x].idcible=idcible;
    	XhrsData[x].idcibleeff=idcibleef;
    	XhrsData[x].page_ajax=page_ajax;
     
     
    	xhr.open("GET",page_ajax+escape(envoi),true);
    	//xhr.open("GET",page_ajax+envoi,true); //ca si la fonction deconne
    	xhr.send(null); 
    }

  13. #33
    Membre éclairé Avatar de Death83
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    1 667
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 667
    Points : 878
    Points
    878
    Par défaut
    Pour l'instant il me dit que lka fonction go n'est pas défini.

    Je suis en train de voir si il manque pas une { ou un truc coimme ca mais je ne trouve rien.

  14. #34
    Membre éclairé Avatar de Death83
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    1 667
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 667
    Points : 878
    Points
    878
    Par défaut
    Ca ne serait pas a cause de ca par hasard?:

    XhrsData[x] = {}

  15. #35
    Membre expert
    Avatar de FremyCompany
    Profil pro
    Étudiant
    Inscrit en
    Février 2006
    Messages
    2 532
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2006
    Messages : 2 532
    Points : 3 239
    Points
    3 239
    Par défaut
    Si, j'y avais pas pensé mais un {} est interdit pour déclarer un objet...
    Il faut au moins mettre un item (ex : {"x":"exemple"}

    Alors écris plutot new Object() à la place

  16. #36
    Membre éclairé Avatar de Death83
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    1 667
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 667
    Points : 878
    Points
    878
    Par défaut
    Non en fait ca ne viens pas de la.

    Car même en enlevant la ligne il me renvoie toujours la même erreur.

    C'est vraiment étrange. Ca fait comme si les arguments envoyé ne correspondent pas à ceux reçu (ca m'avait dejà fait ca a cause d'un truc dans le genre).

    La je suis vraiment largué .

  17. #37
    Membre expert
    Avatar de FremyCompany
    Profil pro
    Étudiant
    Inscrit en
    Février 2006
    Messages
    2 532
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2006
    Messages : 2 532
    Points : 3 239
    Points
    3 239
    Par défaut
    Chez moi ca marche jusqu'au momment ou il récupère les données car comme je suis en locale, j'ai un acces refusé !

    Je crois cependant que tout est OK !
    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
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    var XhrsData=new Array();
     
    function getXhr()
    {
    	var xhr=null;
    	if(window.XMLHttpRequest) // Firefox et autres
    		xhr =new XMLHttpRequest(); 
    	else if(window.ActiveXObject)
    	{ // Internet Explorer 
    		try 
    		{
    				xhr = new ActiveXObject("Msxml2.XMLHTTP");
    		} 
    		catch (e) 
    		{
    			xhr = new ActiveXObject("Microsoft.XMLHTTP");
    		}
    	}
    	else 
    	{ // XMLHttpRequest non supporté par le navigateur 
    		alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest..."); 
    		xhr = false; 
    	} 
    	return xhr;
    }
     
    function go(envoi,idcible,idcibleeff,page_ajax)
    {
    	var xhr = getXhr()
    	// On défini ce qu'on va faire quand on aura la réponse
    	var func = function()
    	{ 
    				var x = [[X]];
    				if (this.readyState != 4 && XhrsData[x].envoi!='')  
    				{
    					switch(XhrsData[x].idcibleeff)
    					{
    						case 'rien':
    							document.getElementById(XhrsData[x].idcible).innerHTML='<td colspan=2 class="aligncenter">Chargement...</td>';
    						break;
    						case 'rien2':
    						break;
    						case 'dragndrop':
    						break;
    						default:	
    							document.getElementById(XhrsData[x].idcible).innerHTML='<div class="chargement">Chargement...</div>';
    						break;
    					}
    			    }
    				else
    				{
     
    				}
     
    			// On ne fait quelque chose que si on a tout reçu et que le serveur est ok
    			if(this.readyState == 4)
    			{	
    					var text_renv = this.responseText; alert(text_renv);
    					if(XhrsData[x].envoi!='')
    					{
    													//cas ou il faut effacer un element
    							document.getElementById(XhrsData[x].idcible).innerHTML=text_renv;
    							if(XhrsData[x].idcibleeff!='rien')
    							{
    								document.getElementById(XhrsData[x].idcibleeff).innerHTML='';
    							}
    							else
    							{
    								/* if(vide==1)
    								{
    									alert('remplie');
    								} */
    							}
     
    					}
    			}
     
    	}
     
    	var x = XhrsData.length;
    	func = ("" + func + "").replace(new RegExp("\\[\\[X\\]\\]",""),x)
    	eval("func = " + func)
    	xhr.onreadystatechange=func
     
    	XhrsData[x] = new Object();
    	XhrsData[x].envoi=envoi;
    	XhrsData[x].idcible=idcible;
    	XhrsData[x].idcibleeff=idcibleeff;
    	XhrsData[x].page_ajax=page_ajax;
     
     
    	xhr.open("GET",page_ajax+escape(envoi),true);
    	//xhr.open("GET",page_ajax+envoi,true); //ca si la fonction deconne
    	xhr.send(null); 
    }

  18. #38
    Membre éclairé Avatar de Death83
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    1 667
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 667
    Points : 878
    Points
    878
    Par défaut
    Moi aussi je test en locale.

    La ca fait chargement et rien ne se passe. Il ne récupert pas les info de la page appelé. (sous FF).

    Sinon sous IE ca marche comme avant, les lignes qui marchait avant marche toujours mais celle qui ne marchait pas ne marche otujours pas.

  19. #39
    Membre éclairé Avatar de Death83
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    1 667
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 667
    Points : 878
    Points
    878
    Par défaut
    Par contre IE me fait un truc bizarre. Il me met le code récupérer en alert? Est-ce normal?

    Meme pour les lignes qui marche pas il récupert les donné mais au lieu de les insérer dans la page il le met en alert.

    Et IE me dit que c'es tune erreur d'excecution inconnu

  20. #40
    Membre expert
    Avatar de FremyCompany
    Profil pro
    Étudiant
    Inscrit en
    Février 2006
    Messages
    2 532
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2006
    Messages : 2 532
    Points : 3 239
    Points
    3 239
    Par défaut
    Pour l'alert, c'est moi qui l'avais mise pour tester si cela marchait.
    Alors, pour moi, ton problème, c'est un problème de gestion de l'information...
    Si l'alert fonctionne c'est que les données ont été récupérées...

    C'est donc dans ce code la qu'il y a une erreur (soit la soit dans tes instanciations de fonction (onclick))... Verrifie tes ID, ...
    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
    					var text_renv = this.responseText; alert(text_renv);
    					if(XhrsData[x].envoi!='')
    					{
    													//cas ou il faut effacer un element
    							document.getElementById(XhrsData[x].idcible).innerHTML=text_renv;
    							if(XhrsData[x].idcibleeff!='rien')
    							{
    								document.getElementById(XhrsData[x].idcibleeff).innerHTML='';
    							}
    							else
    							{
    								/* if(vide==1)
    								{
    									alert('remplie');
    								} */
    							}
     
    					}
    Au fait, si tu teste en locale, sache que FF interdit les XmlHttpRequest en locale... D'ou, peut-être, le manque total de réactivité...

    Pour sa part, IE bloque ce que j'appelle, sans doute indûment, l'auto-callback (càd un appel sur soi-même) en local pour éviter les boucles infinies...

Discussions similaires

  1. Réponses: 0
    Dernier message: 21/06/2012, 12h22
  2. AJAX-> Utiliser le Google Web Toolkit avec le framework ZEND
    Par Ericx_25 dans le forum Zend Framework
    Réponses: 1
    Dernier message: 25/06/2008, 14h03
  3. [AJAX] Utilisation ajax
    Par Benjiijneb dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 10/04/2006, 18h48
  4. [AJAX] Utilisation AJAX
    Par topolino dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 14/02/2006, 09h30
  5. [AJAX] Utilisation AJAX
    Par illegalsene dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 24/01/2006, 11h55

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