IE fait encore des siennes avec Javascript & ajax :s

WRInaute occasionnel
Bonjour à vous,

Encore un problème de compatibilité entre les navigateurs... et surtout avec Internet Explorer... je serait tenter de dire comme d'hab mais bon ^^

Alors voici mon code JS qui marche a la fois sur FF2/FF3 et opéra
Code:
function achathangar (id, qte, type)
{
  var OAjax;
  if (window.XMLHttpRequest) OAjax = new XMLHttpRequest();
  else if (window.ActiveXObject) OAjax = new ActiveXObject('Microsoft.XMLHTTP');
  OAjax.open('POST',"php/hangar.php",true);
  OAjax.onreadystatechange = function()
  {
      if (OAjax.readyState == 4 && OAjax.status==200)
      {
          if (document.getElementById)
          {   
              if (OAjax.responseText =="true") { /* OK */
                    document.getElementById("msg"+id+"").innerHTML=OAjax.responseText;
					alert('stop');
              }else{                             /* PAS OK */
                    document.getElementById("msg"+id+"").innerHTML=OAjax.responseText;
					alert('stop2');
              }
          }     
      }
  }
  OAjax.setRequestHeader('Content-type','application/x-www-form-urlencoded');
  OAjax.send('id='+id+'&qte='+qte+'&type='+type);   
  
}

La page hangar.php renvoi un texte qui dit si tout s'est bien passé, si c'est le cas on voit alors le alert STOP sinon alert STOP2

Le truc c'est qu'avec IE ca me traite les données dans la page hangar.php mais ca ne me met aucun retour, en gros c'est comme si " OAjax.responseText " était vide :s

Quelqu'un aurait une idée ?

Merci[/quote]
 
WRInaute impliqué
slt,
Code:
      if (OAjax.readyState == 4 && OAjax.status==200)
      {
              alert( '[' + OAjax.responseText + ']');
              alert( '[' + OAjax.responseXML + ']');
    
      }
donne quoi ss ie ?
 
WRInaute occasionnel
Merci de ta réponse,

Alors le premier alert retourne ce que répond la page PHP, donc c'est good, et le 2eme alert marche mais n'affiche que les [ ]
 
WRInaute impliqué
[mode supposition hasardeuse]
Code:
if (OAjax.responseText =="true") { /* OK */
peut être que ie évalue le "true" et que du coup il compare le responseText avec le booléen true
essaye comme ceci peut être :
Code:
if (OAjax.responseText =='true') { /* OK */
[/mode supposition hasardeuse]
 
WRInaute occasionnel
Merci pour cette info, mon souci a été réglé mais ca ne venait pas de ça...

Enfaite ma page PHP renvoyait du texte html avec notamment un commentaire HTML dedans... je l'ai enlevé et ca marché... Allez savoir pourquoi ^^ peut etre pour les " < > " ^^

Merci a julienr :)
 
WRInaute accro
ZelkiN a dit:
Merci pour cette info, mon souci a été réglé mais ca ne venait pas de ça...

Enfaite ma page PHP renvoyait du texte html avec notamment un commentaire HTML dedans... je l'ai enlevé et ca marché... Allez savoir pourquoi ^^ peut etre pour les " < > " ^^

Merci a julienr :)

et as tu essayé d'envoyer un header html (dans le script côté serveur) pour que tes <> soit bien compris ?
 
Discussions similaires
Haut