Partage
  • Partager sur Facebook
  • Partager sur Twitter

Erreur Ajax/Javascript Internet Explorer

Mais fonctionne sur Firefox

Sujet résolu
    7 janvier 2009 à 7:37:51

    Bonjour a tous,

    J'ai récemment décidé d'apprendre la programmation Ajax.
    Tout fonctionne bien je commence a le connaitre, mais la je suis tombe sur un mur.
    Mon script fonctionne sur Firefox mais pas sur IE.
    Voici mon script :
    function makeRequest()
    {
    	var xhr = null ; //création de l'objet
    
    	if (window.XMLHttpRequest) // Firefox
    	{
    		xhr = new XMLHttpRequest ();
    	}
    
    	else if (window.activexObject) // Internet Explorer
    	{
    		try
    		{
    			xhr = new ActiveXObject("Msxml2.XMLHTTP");
    		}
    		catch(e)
    		{
    			try 
    			{
    				xhr = new ActiveXObject("Microsoft.XMLHTTP");
    			} 
    			catch(e){}
    		}
    	}
    
    	else //XMLHttpRequest non supporté par le navigateur
    	{
    		alert (" Votre navigateur ne supporte pas les objets XMLHTTPRequest ...");
    		return;
    	}			
    	
    	xhr.open ("POST", " factions_info.php ", true); 
    	xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
    
    	xhr.onreadystatechange = function() 
    	{
    		if(xhr.readyState == 4 && (xhr.status == 200 || xhr.status == 0)) 
    		{
    			document.getElementById('affiche_factions').innerHTML = xhr.responseText;
    			<?php $if_affiche = "8"; ?>
    		}
    	}
    	xhr.send("bob=bob"); //on envoi la requête 
    }
    

    Sur Firefox ce script marche super, mais sur IE7 erreur :

    if(xhr.readyState == 4 && (xhr.status == 200 || xhr.status == 0))
    {
    dans ces ligne selon Internet Explorer.

    Merci d'avance.
    • Partager sur Facebook
    • Partager sur Twitter
      7 janvier 2009 à 22:01:55

      Pourquoi avoir mis des espaces dans les quotes du fichier?
      C'est sans doute ça qui fait bug
      • Partager sur Facebook
      • Partager sur Twitter
        7 janvier 2009 à 22:16:55

        Euhh, tu crois vraiment que :
        <?php $if_affiche = "8"; ?>
        va être interprété a l'appel de ta fonction javascript ?
        Sinon, remplace la condition par if(xhr.readyState == 4 && xhr.status == 200)
        • Partager sur Facebook
        • Partager sur Twitter
          7 janvier 2009 à 22:50:17

          Salut,

          ma var php c'est pour une autre fonction, plus un test.
          Et j'ai essayer d'élever les espaces et ça fonctionne toujours pas.

          Merci.

          EDIT***

          J'ai essayer de mettre un :
          alert(xhr.responseText);
          a la place de mon :
          document.getElementById('affiche_factions').innerHTML = xhr.responseText;
          

          Sa fonctionne.
          Mais comment rendre le inner.html compatible explorer.

          Merci.
          • Partager sur Facebook
          • Partager sur Twitter
            8 janvier 2009 à 11:31:52

            Tu peux essayer avec le parser de Timot :

            http://www.siteduzero.com/forum-83-327 [...] html#r3295087

            parse(document.getElementById("affiche_factions"),xhr.responseText);
            
            • Partager sur Facebook
            • Partager sur Twitter

            Erreur Ajax/Javascript Internet Explorer

            × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
            × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
            • Editeur
            • Markdown