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. #1
    Membre éprouvé 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
    Par défaut [AJAX] Utilisation AJAX avec IE
    Salut a tous,

    j'ai un soucis sous IE pour plusieurs événement sous IE.

    J'utilise la même feuille (AJAX.js) mais cette ligne sous IE ne fonctionne pas:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <select name="Zone" OnChange="go(this.value,\'affselectzone\',\'affselecttypeverif\',\'../AJAX/selectzonecritdvd.php?zone=\');" >
    Alors que celle là fonctionne:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type="text" name="rechanime" id="rechanime" class="inputmoyen" onkeyup="go(document.getElementById(\'rechanime\').value,\'affrechanime\',\'\',\'../AJAX/rechercheanime6.php?'.$dvdassoc.'motcle=\');">
    (les \ c'est parceque ces ligne sont dans des echo '' php.)
    (sinon les 2 lignes fontcionne sous mozilla et netscape)

    Avez vous une idée?

    SI vous voulez je peut vous donner la fonction go() (elle est assez longue alors je préfère par la mettre si il n'a ya pas besoin).

  2. #2
    Membre Expert Avatar de KiLVaiDeN
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    2 868
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 2 868
    Par défaut
    Salut,

    Quand tu dis qu'elle ne fonctionne pas : ça te met quoi comme erreur ?

  3. #3
    Membre éprouvé 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
    Par défaut
    Rien ne se passe et ca me met error on page dans la barre en bas du navigateur.

  4. #4
    Membre Expert Avatar de KiLVaiDeN
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    2 868
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 2 868
    Par défaut
    Tu peux double cliquer dessus pour avoir une description de l'erreur.

  5. #5
    Membre éprouvé 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
    Par défaut
    Il me met &galement une erreur pour cette ligne:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <td class="recherchealfa2" onClick="liens('accueilmanga.php?search1=C')" onMouseOver="this.className='recherchealfaon';" onMouseOut="this.className='recherchealfa2';"><a href="accueilmanga.php?search1=C">C</a></td>
    il repond: erreur d'execution inconnu .

    Il n'y aurai pas un problème avec le pointeur this avec ie par hasard?

  6. #6
    Membre Expert Avatar de KiLVaiDeN
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    2 868
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 2 868
    Par défaut
    quand tu fais "this.className" tu vises le TD ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    // Pour IE
    this.setAttribute("className","uneClasse");
    // Pour les autres
    this.setAttribute("class","uneClasse");

  7. #7
    Membre éprouvé 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
    Par défaut
    En fait cette ligne marche, la correspondance de la ligne renvoyé est fausse. Ca correpon pas à l'endroit ou je clique.

    pour pouvoir peut etre nous aider j'ai 2 autres lignes, une qui marche sous IE et l'autre pas:

    Celle qui marche:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    onkeyup="go(document.getElementById(\'moteur\').value,\'afftab\',\'afftab2\',\'../AJAX/accueilmanga.php?motcle=\');"
    Celle qui marche pas:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    onClick="go(\''.$Titre[$i].'\',\'afftome'.$id[$i].'\',\'rien\',\'../AJAX/accueilmanga2.php?titre=\');"
    Peut etre qu'en retrouvant les point commun on pourra trouver.

  8. #8
    Membre Expert Avatar de KiLVaiDeN
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    2 868
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 2 868
    Par défaut
    Question : pourquoi afficher le code PHP ?
    Etant donné qu'il s'agit d'un problème Javascript, donc coté client, il serait préférable d'analyser le code source généré

  9. #9
    Membre éprouvé 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
    Par défaut
    Citation Envoyé par KiLVaiDeN
    Question : pourquoi afficher le code PHP ?
    Etant donné qu'il s'agit d'un problème Javascript, donc coté client, il serait préférable d'analyser le code source généré
    Oui mais comment tu fais pour récupérer du code source générer en AJAX? Car la ligne qui marche pas est elle même généré par ajax (avec la ligne qui marche au dessus d'ailleurs).

  10. #10
    Membre Expert Avatar de KiLVaiDeN
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    2 868
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 2 868
    Par défaut
    Et bien au lieu d'afficher ce qu'Ajax te retourne, tu le mets dans un textarea

  11. #11
    Membre éprouvé 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
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    onClick="go('Alice19th','afftome31','rien','../AJAX/accueilmanga2.php?titre=');"
    voilà ce que ca me donne pour la ligne qui marche pas

  12. #12
    Membre Expert Avatar de KiLVaiDeN
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    2 868
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 2 868
    Par défaut
    Donc là, les paramètres sont bons à priori, au premier coup d'oeil;

    Donc il faut regarder la fonction go

  13. #13
    Membre éprouvé 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
    Par défaut
    J'attendais que tu me le demande ^^.

    la voici:

    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
     
    var xhr = null; 
    function getXhr()
    {
    	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; 
    	} 
    }
    function go(envoi,idcible,idcibleeff,page_ajax)
    {
    	getXhr()
    	// On défini ce qu'on va faire quand on aura la réponse
    	xhr.onreadystatechange = function()
    	{ 
    				if (xhr.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(xhr.readyState == 4 && xhr.status == 200)
    			{	
    					text_renv = xhr.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); 
    }
    Ce qu'est bizarre c'est quelle marche très ben pour FF et netscape, mais aussi sous IE (enfin pas pour tout les appels).

  14. #14
    Membre éprouvé 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
    Par défaut
    J'arrive vraiment pas à trouver le problème. C'est vraiment mysqtique comme truc .

  15. #15
    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
    Par défaut
    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); 
    }

  16. #16
    Membre averti
    Inscrit en
    Septembre 2004
    Messages
    46
    Détails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 46
    Par défaut Attention a la case
    IE est sensible à la case du"onclick" .il ne faut le cder onClick ou OnClick mais bien 'onclick"

    C'est peut-être simplement ca

  17. #17
    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
    Par défaut
    Citation Envoyé par Bruno2000
    IE est sensible à la case du"onclick" .il ne faut le cder onClick ou OnClick mais bien 'onclick"

    C'est peut-être simplement ca
    Je ne crois pas... Mais ta remarque est pertinante, un attribut HTML doit tjrs être en minuscule... Même pour un event !

  18. #18
    Membre Expert Avatar de KiLVaiDeN
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    2 868
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 2 868
    Par défaut
    Au fait, pourquoi ne pas déclarer le xhr en global ? Ainsi ça éviterait son instantiation à chaque fois non ?

  19. #19
    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
    Par défaut
    Citation Envoyé par KiLVaiDeN
    Au fait, pourquoi ne pas déclarer le xhr en global ? Ainsi ça éviterait son instantiation à chaque fois non ?
    Parcequ'un même objet ne peut realiser qu'une seule requete, surtout si une requet est déjà en cours (dans ce cas, tu as collusion entre l'ancienne et la nouvelle)

  20. #20
    Membre éprouvé 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
    Par défaut
    Merci je vais essayer, sinon ce code est dérivé du tuto ajax de ce site lol.

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