[Résolu]Problème avec Ajax

Discussion dans 'Développement d'un site Web ou d'une appli mobile' créé par u94082, 23 Août 2008.

  1. u94082
    u94082 WRInaute occasionnel
    Inscrit:
    23 Août 2008
    Messages:
    257
    J'aime reçus:
    0
    Bonsoir à tous,

    J'utilise actuellement un script ajax qui fonctionne très bien avec Firefox mais pas avec Internet Explorer (5,6 et 7)...

    J'ai bien essayé de le débugguer avec la "console" d'IE mais rien n'y fait, Firefox quand à lui ne retourne pas d'erreur ; Etant un peu perdu pourriez vous me donner un coup de main ?

    Le script en question :
    Code:
    var http_request = false;
    function makeRequest(url, parameters, resultdiv, loader) {
    	http_request = false;
    	if (window.XMLHttpRequest) { // Mozilla, Safari,...
    		http_request = new XMLHttpRequest();
            	//if (http_request.overrideMimeType) {
    			//http_request.overrideMimeType('text/xml');
    			//http_request.overrideMimeType('text/html; charset=ISO-8859-1');
    		//}
    	} else if (window.ActiveXObject) { // IE
    		try {
    			http_request = new ActiveXObject("Msxml2.XMLHTTP");
    		} catch (e) {
                		try {
    				http_request = new ActiveXObject("Microsoft.XMLHTTP");
                	} catch (e) {}
             }
          }
          if (!http_request) {
    		alert('Votre navigateur ne supporte pas la technologie XMLhttp !');
    		return false;
          }
          //http_request.onreadystatechange = alertContents;
          http_request.open('GET', url + parameters, true);
          
          http_request.onreadystatechange = function alertContents() {		
    	if (http_request.readyState == 1) {
            	document.getElementById(loader).style.display = 'block';
    		document.getElementById("loadingtxt").style.display = 'block';
            }
         	if (http_request.readyState == 4) {
    		if (http_request.status == 200) {
                		//alert(http_request.responseText);
                		result = http_request.responseText;
                		document.getElementById(resultdiv).innerHTML = result;
    			document.getElementById(loader).style.display = 'none';            
    			document.getElementById("loadingtxt").style.display = 'none';
             	} else {
                		alert('Une erreur s\'est produite !');
             	}
          	}
          }
          http_request.send(null);
    }
     
    D'avance merci pour votre aide
     
  2. UsagiYojimbo
    UsagiYojimbo WRInaute accro
    Inscrit:
    23 Novembre 2005
    Messages:
    11 973
    J'aime reçus:
    121
    Avec IE5 déjà l'Ajax je pense que tu peux oublier, vu comment ce navigateur supporte le JS.

    Pour ce qui est d'IE5 et IE6, tu as essayé de faire du debbugage pas à pas en mettant des alert() javascript à chaque étape du code pour voir à partir d'où tu as un problème.
     
  3. Jeviensderio
    Jeviensderio WRInaute passionné
    Inscrit:
    29 Septembre 2006
    Messages:
    1 053
    J'aime reçus:
    0
    Pourquoi ne pas utiliser un script tout fait, comme anaa.eu, avec les fonctions de base et qui est certain de fonctionner sur tous navigateurs....

    Mais si c'est la mise à jour de la page qui ne fonctionne pas, on ne peut en juger, cela dépend comment le script est utilisé (formulaire ou autres).
     
  4. u94082
    u94082 WRInaute occasionnel
    Inscrit:
    23 Août 2008
    Messages:
    257
    J'aime reçus:
    0
    Bonjour et merci pour vos réponses !

    Pour IE5 ok j'oublie...
    J'ai bien essayé de débugguer avec des alert() un peu partout et pas moyen :?
    C'est quand même symptomatique ! Quelle poisse cet IE... Ce que je n'arrive vraiment pas a comprendre c'est pourquoi Firefox ne retourne aucune erreur...
    J'utilise ce script aussi bien à partir de formulaire (onsubmit()) qu'avec des liens appelant la fonction...
    La fonction se lance jusqu'à faire apparaître l'animation de chargement puis se fige.

    Pour anaa.eu j'ai regardé mais c'est pas l'idéal niveau poids (+ de 8ko), après c'est sur que si je n'ai pas le choix ben...

    Il n'y a rien dans mon script qui à première vue est incompatible IE ?
    Je n'ai pas beaucoup d'expérience donc peut être que la structure du "bouzin" n'est pas bonne ou autre...

    Merci pour votre aide
     
  5. zeb
    zeb WRInaute accro
    Inscrit:
    5 Décembre 2004
    Messages:
    12 024
    J'aime reçus:
    1
    Re: Problème avec Ajax

    Code:
    var http_request = false;
    function makeRequest(url, parameters, resultdiv, loader) {
    	http_request = =null;
    	if (window.XMLHttpRequest) { 
    		http_request = new XMLHttpRequest();
    	}
    	else if (window.ActiveXObject) {
    		http_request = new ActiveXObject("Microsoft.XMLHTTP");
    	}
          if (!http_request) {
    		alert('Votre navigateur ne supporte pas la technologie XMLhttp !');
    		return false;
          }
          //http_request.onreadystatechange = alertContents;
          http_request.open('GET', url + parameters, true);
          
          http_request.onreadystatechange = function alertContents() {		
    	if (http_request.readyState == 1) {
            	document.getElementById(loader).style.display = 'block';
    		document.getElementById("loadingtxt").style.display = 'block';
            }
         	if (http_request.readyState == 4) {
    		if (http_request.status == 200) {
                		//alert(http_request.responseText);
                		result = http_request.responseText;
                		document.getElementById(resultdiv).innerHTML = result;
    			document.getElementById(loader).style.display = 'none';            
    			document.getElementById("loadingtxt").style.display = 'none';
             	} else {
                		alert('Une erreur s\'est produite !');
             	}
          	}
          }
          http_request.send(null);
    }
     
     
  6. UsagiYojimbo
    UsagiYojimbo WRInaute accro
    Inscrit:
    23 Novembre 2005
    Messages:
    11 973
    J'aime reçus:
    121
    Tu as une page en ligne où on peut jeter un oeil ?

    Quand je faisais de l'AJAX à la mano (avant de m'essayer à prototype et jquery), je partais du script suivant :

    Code:
    		var xhr_object = null; 	 
    		if(window.XMLHttpRequest) // Firefox 
    			xhr_object = new XMLHttpRequest(); 
    		else if(window.ActiveXObject) // Internet Explorer 
    			xhr_object = new ActiveXObject("Microsoft.XMLHTTP"); 
    		else { // XMLHttpRequest non supporté par le navigateur 
    			alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest..."); 
    		return; 
    		}  
    		xhr_object.open("GET", "loaditem.php?id="+id, false); 
    		xhr_object.send(null); 
    		if	(xhr_object.readyState == 4)
    		{
    			if (xhr_object.responseText!='')
    			{
    				document.getElementById("item").innerHTML = document.getElementById("item").innerHTML + xhr_object.responseText;
    			}
    		}
    	}
    
    Si ca peut t'aider...
     
  7. u94082
    u94082 WRInaute occasionnel
    Inscrit:
    23 Août 2008
    Messages:
    257
    J'aime reçus:
    0
    @Zeb : Ca ne fonctionne pas :( Cette fois ci rien ne se lance, un peu comme si il n'y avait pas de script... En enlevant un "=" juste avant le "null" à la troisième ligne ça revient au fonctionnement précédent.

    @UsagiYojimbo : Malheureusement j'suis en local mais je vais essayer de la mettre en ligne, merci pour ta base de script avec un peu de bol j'arriverai à l'adapter.

    En tout cas merci beaucoup vous répondez rapidement et c'est super !

    EDIT : HOURRA ! C'est en fait un truc tout c*n : dans le code c'est la ligne
    Code:
    result = http_request.responseText;
    document.getElementById(resultdiv).innerHTML = result;
    
    à modifier comme ça
    Code:
    document.getElementById(resultdiv).innerHTML = http_request.responseText;
    
    Bon ben c'est génial :) :) Encore merci !

    PS : C'est drôle cette bouse d'IE est bien plus rapide que Firefox pour executer la fonction...
     
  8. zeb
    zeb WRInaute accro
    Inscrit:
    5 Décembre 2004
    Messages:
    12 024
    J'aime reçus:
    1
    pense qu'IE évolue dans un environnement pré chargé pour lui avec toute l'api windobe derrière.
    Les autres navigateurs doivent travailler en milieu hostile ;-)
     
  9. UsagiYojimbo
    UsagiYojimbo WRInaute accro
    Inscrit:
    23 Novembre 2005
    Messages:
    11 973
    J'aime reçus:
    121
    En fait je pense que c'est surtout du au fait que la variable result n'était pas déclarée :

    Code:
    var result = http_request.responseText;
    document.getElementById(resultdiv).innerHTML = result;
    
    aurait sans doute mieux fonctionné.
     
  10. u94082
    u94082 WRInaute occasionnel
    Inscrit:
    23 Août 2008
    Messages:
    257
    J'aime reçus:
    0
    Merci pour cet éclaircissement !

    Bien vu ! :) Firefox est vraiment peace alors...

    Merci beaucoup pour votre aide !
     
  11. informatiquegifs
    informatiquegifs WRInaute occasionnel
    Inscrit:
    27 Août 2003
    Messages:
    297
    J'aime reçus:
    0
    mdr j'ai cru t'avais un problème avec les WC :)
     
Chargement...
Similar Threads - [Résolu]Problème Ajax Forum Date
[RESOLU]probleme lors de l'update des informations Développement d'un site Web ou d'une appli mobile 7 Avril 2010
[Resolu]Probleme soumission boutique 1and1 Problèmes de référencement spécifiques à vos sites 25 Mai 2009
[résolu]Problème insoluble avec un ORBER BY Développement d'un site Web ou d'une appli mobile 15 Juillet 2008
[Resolu]Probleme installation forum PHPBB Développement d'un site Web ou d'une appli mobile 11 Juillet 2008
[résolu]problème d'indexation url finissant par /1 Crawl et indexation Google, sitemaps 20 Juin 2008
[Résolu]Problèmes d'accent dans le Flux RSS Développement d'un site Web ou d'une appli mobile 29 Mai 2008
[Résolu]Problème de syntaxe pour une RewriteRule URL Rewriting et .htaccess 5 Mai 2008
[résolu]Probleme serveur chez ovh Administration d'un site Web 5 Janvier 2008
[résolu]probleme de recuperation des checkbox Développement d'un site Web ou d'une appli mobile 31 Décembre 2007
[Résolu]Problème avec imagerotate() Développement d'un site Web ou d'une appli mobile 30 Décembre 2007
[résolu]problème d'une simple redirection .php en .html URL Rewriting et .htaccess 27 Août 2007
[Résolu]Problème de soulignement dans un menu Développement d'un site Web ou d'une appli mobile 9 Juillet 2007
[Résolu]Problème menu en fonction du naviguateur Développement d'un site Web ou d'une appli mobile 30 Juin 2007
[RESOLU]Probleme tres simple CSS menu Développement d'un site Web ou d'une appli mobile 28 Juin 2007
[resolu]problème css IE6 Développement d'un site Web ou d'une appli mobile 6 Juin 2007
[résolu]Problème affichage DIV sous Firefox Développement d'un site Web ou d'une appli mobile 15 Avril 2007
[resolu]Problème FCKeditor Développement d'un site Web ou d'une appli mobile 7 Août 2006
[Resolu]Problème activex flash Développement d'un site Web ou d'une appli mobile 1 Juin 2006
[Résolu]Problème affichage numéro Développement d'un site Web ou d'une appli mobile 19 Avril 2006
[Résolu]Problème JS - replace Développement d'un site Web ou d'une appli mobile 21 Mars 2006