Ajax ne marche pas sous firefox

Ajax ne marche pas sous firefox - HTML/CSS - Programmation

Marsh Posté le 30-04-2009 à 11:47:26    

bonjour
 
je n arrive a résoudre un probléme
 
le code ajax fonctionne tres bien sous ie mais impossible de le faire fonctionner sous firefox
je n ai aucune erreur dans la console de firefox.
 

Code :
  1. function get_Xhr()
  2. {
  3.   if (window.XMLHttpRequest)                 //  Objet de la fenêtre courant
  4. {
  5.     xhr = new XMLHttpRequest();     //  Firefox, Safari, ...
  6. }
  7. else
  8.    if (window.ActiveXObject)                    //  Version Active
  9.    {
  10.       xhr = new ActiveXObject("Microsoft.XMLHTTP" );   // Internet Explorer  
  11.    }
  12. }
  13. function ajaxclient()
  14. {
  15.   get_Xhr();
  16.   xhr.onreadystatechange = function()
  17.    {
  18.     if(xhr.readyState == 4 && xhr.status == 200)
  19.      {
  20.       document.getElementById('testt').innerHTML = xhr.responseText;
  21.      }
  22.    }
  23.   xhr.open("POST",'ajax/ajax_ajout_client.php',true);
  24.   xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
  25.   xhr.send("cocl="+document.form_ajout_client.name.value);
  26. }


 
merci de votre aide

Reply

Marsh Posté le 30-04-2009 à 11:47:26   

Reply

Marsh Posté le 30-04-2009 à 12:46:43    

d@kn1ko a écrit :

bonjour
 
je n arrive a résoudre un probléme
 
le code ajax fonctionne tres bien sous ie mais impossible de le faire fonctionner sous firefox
je n ai aucune erreur dans la console de firefox.
 

Code :
  1. function get_Xhr()
  2. {
  3.   if (window.XMLHttpRequest)                 //  Objet de la fenêtre courant
  4. {
  5.     xhr = new XMLHttpRequest();     //  Firefox, Safari, ...
  6. }
  7. else
  8.    if (window.ActiveXObject)                    //  Version Active
  9.    {
  10.       xhr = new ActiveXObject("Microsoft.XMLHTTP" );   // Internet Explorer  
  11.    }
  12. }
  13. function ajaxclient()
  14. {
  15.   get_Xhr();
  16.   xhr.onreadystatechange = function()
  17.    {
  18.     if(xhr.readyState == 4 && xhr.status == 200)
  19.      {
  20.       document.getElementById('testt').innerHTML = xhr.responseText;
  21.      }
  22.    }
  23.   xhr.open("POST",'ajax/ajax_ajout_client.php',true);
  24.   xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
  25.   xhr.send("cocl="+document.form_ajout_client.name.value);
  26. }


 
merci de votre aide


 
elle sert à rien t'as fonction get_XHR, puisque tu ne retournes aucune valeur... Si tu instancies des objets sans les renvoyer (ta variable est locale) ca pourra pas fonctionner, c'est clair, net et logique ;)
 

Code :
  1. function get_Xhr()
  2. {
  3.   if (window.XMLHttpRequest)                 //  Objet de la fenêtre courant
  4. {
  5.     return new XMLHttpRequest();     //  Firefox, Safari, ...
  6. }
  7. else
  8.    if (window.ActiveXObject)                    //  Version Active
  9.    {
  10.       return new ActiveXObject("Microsoft.XMLHTTP" );   // Internet Explorer  
  11.    }
  12. return false;
  13. }
  14. function ajaxclient()
  15. {
  16.   var xhr = get_Xhr();
  17.   xhr.onreadystatechange = function()
  18.    {
  19.     if(xhr.readyState == 4 && xhr.status == 200)
  20.      {
  21.       document.getElementById('testt').innerHTML = xhr.responseText;
  22.      }
  23.    }
  24.   xhr.open("POST",'ajax/ajax_ajout_client.php',true);
  25.   xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
  26.   xhr.send("cocl="+document.form_ajout_client.name.value);
  27. }



---------------
We deserve everything that's coming...
Reply

Marsh Posté le 30-04-2009 à 12:51:32    

On peut aussi ajouter un test pour Msxml2.XMLHTTP :

function get_Xhr()
{
  var xmlHTTP;
  try{xmlHTTP = new XMLHttpRequest();}
  catch(e) {
    try{xmlHTTP = new ActiveXObject("Msxml2.XMLHTTP" );}
    catch(e) {
      try{xmlHTTP = new ActiveXObject("Microsoft.XMLHTTP" );}
      catch(e) {
        alert("Your browser does not support AJAX!" );
        return false;
      }
    }
  }
  return xmlHTTP;
}


Message édité par olivthill le 30-04-2009 à 12:55:18
Reply

Marsh Posté le 30-04-2009 à 12:56:39    

SICKofitALL a écrit :


 
elle sert à rien t'as fonction get_XHR, puisque tu ne retournes aucune valeur...


Il initialise une globale bien dégueu appelée "xhr", noob :o  

olivthill a écrit :

On peut aussi ajouter un test pour Msxml2.XMLHTTP :

function get_Xhr()
{
  var xmlHTTP;
  try{xmlHTTP = new XMLHttpRequest();}
  catch(e) {
    try{xmlHTTP = new ActiveXObject("Msxml2.XMLHTTP" );}
    catch(e) {
      try{xmlHTTP = new ActiveXObject("Microsoft.XMLHTTP" );}
      catch(e) {
        alert("Your browser does not support AJAX!" );
        return false;
      }
    }
  }
  return xmlHTTP;
}



 [:cerveau vomi]

Message cité 2 fois
Message édité par masklinn le 30-04-2009 à 12:57:25

---------------
I mean, true, a cancer will probably destroy its host organism. But what about the cells whose mutations allow them to think outside the box, and replicate and expand beyond their wildest dreams by throwing away the limits imposed by overbearing genetic r
Reply

Marsh Posté le 30-04-2009 à 12:56:48    

[:aloy]

Code :
  1. var xhr = function ()
  2. {
  3.     if (window.XMLHttpRequest) // FF
  4.         return new XMLHttpRequest ();
  5.  
  6.     if (window.ActiveXObject) // IE oldschool et newschool
  7.     {
  8.         var o;
  9.         try { o = new ActiveXObject ("Msxml2.XMLHTTP" ); }
  10.         catch (e) { o = new ActiveXObject ("Microsoft.XMLHTTP" ); }
  11.         return o;
  12.     }
  13.     alert ("Pas de support de XHR !" );
  14.     return false;
  15. }


---------------
We deserve everything that's coming...
Reply

Marsh Posté le 30-04-2009 à 12:59:25    

masklinn a écrit :


Il initialise une globale bien dégueu appelée "xhr", noob :o


oui j'ai bien vu mais c'est pas comme ca qu'on fait :o²


---------------
We deserve everything that's coming...
Reply

Marsh Posté le 30-04-2009 à 13:31:56    

masklinn a écrit :


Il initialise une globale bien dégueu appelée "xhr", noob :o  


 


 
oublie que t as été également noob comme tu dis.
 
v tester les différentes propositions merci bien

Reply

Marsh Posté le 30-04-2009 à 13:38:59    

SICKofitALL a écrit :


 
elle sert à rien t'as fonction get_XHR, puisque tu ne retournes aucune valeur... Si tu instancies des objets sans les renvoyer (ta variable est locale) ca pourra pas fonctionner, c'est clair, net et logique ;)
 

Code :
  1. function get_Xhr()
  2. {
  3.   if (window.XMLHttpRequest)                 //  Objet de la fenêtre courant
  4. {
  5.     return new XMLHttpRequest();     //  Firefox, Safari, ...
  6. }
  7. else
  8.    if (window.ActiveXObject)                    //  Version Active
  9.    {
  10.       return new ActiveXObject("Microsoft.XMLHTTP" );   // Internet Explorer  
  11.    }
  12. return false;
  13. }
  14. function ajaxclient()
  15. {
  16.   var xhr = get_Xhr();
  17.   xhr.onreadystatechange = function()
  18.    {
  19.     if(xhr.readyState == 4 && xhr.status == 200)
  20.      {
  21.       document.getElementById('testt').innerHTML = xhr.responseText;
  22.      }
  23.    }
  24.   xhr.open("POST",'ajax/ajax_ajout_client.php',true);
  25.   xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
  26.   xhr.send("cocl="+document.form_ajout_client.name.value);
  27. }




 
ok testé et ca fonctionne merci bien

Reply

Marsh Posté le 30-04-2009 à 13:40:30    

prends la deuxieme version de get_Xhr (), elle est surement plus complète car elle gère les différents cas pour IE


---------------
We deserve everything that's coming...
Reply

Marsh Posté le 30-04-2009 à 13:50:31    

SICKofitALL a écrit :

prends la deuxieme version de get_Xhr (), elle est surement plus complète car elle gère les différents cas pour IE


 
ok  :)

Reply

Marsh Posté le 30-04-2009 à 13:50:31   

Reply

Marsh Posté le 05-05-2009 à 10:52:42    

je reviens vers vous je me heurte a un autre problème
 
il n y a que cette partie de code qui ne fonctionne pas sous ie6 mais fonctionne sans probléme sous firefox essayé en GET pareil
 
je précise que les alert s affichent bien avec ie6 comme firefox
 
je seche  :hello:  
 

Code :
  1. function get_Xhr()
  2. {
  3.   var xmlHTTP;
  4.   try{xmlHTTP = new XMLHttpRequest();}
  5.   catch(e) {
  6.     try{xmlHTTP = new ActiveXObject("Msxml2.XMLHTTP" );}
  7.     catch(e) {
  8.       try{xmlHTTP = new ActiveXObject("Microsoft.XMLHTTP" );}
  9.       catch(e) {
  10.         alert("Your browser does not support AJAX!" );
  11.         return false;
  12.       }
  13.     }
  14.   }
  15.   return xmlHTTP;
  16. }
  17. function ajaxvoirinvite()
  18. {
  19. alert("test1" );
  20.    var xhr = get_Xhr();
  21.    xhr.onreadystatechange = function()
  22.     {
  23.      if(xhr.readyState == 4 && xhr.status == 200)
  24.       {
  25.    alert("test2" );
  26.       document.getElementById('voirinvite').innerHTML = xhr.responseText;
  27. }
  28. }
  29. alert("test3" );
  30. xhr.open("POST",'ajax/ajax_invite.php',true);
  31. xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
  32. var test;
  33. if (document.form_recap_client.invite.checked)
  34. {
  35. test=1;
  36. }
  37. else
  38. {
  39. test=0;
  40. }
  41. alert(test);
  42. xhr.send("part="+test);
  43. }


et le fichier php

Code :
  1. <?php
  2. if (isset($_POST["part"]))
  3. {
  4. $value=$_POST["part"];
  5. if ($value==1)
  6.  {
  7.  echo "<td>
  8.   Nom : <input class=\"input\" type=\"text\" name=\"nom1\" id=\"nom1\"/><br><br>
  9.   Nom : <input class=\"input\" type=\"text\" name=\"nom2\" id=\"nom2\"/>
  10.   </td>
  11.   <td>
  12.   Prénom : <input class=\"input\" type=\"text\" name=\"prenom1\" id=\"prenom1\"/><br><br>
  13.   Prénom : <input class=\"input\" type=\"text\" name=\"prenom2\" id=\"prenom2\"/>
  14.   </td>";
  15.  }
  16.  else
  17.  {
  18.  echo "";
  19.  }
  20. }
  21. ?>


Message édité par d@kn1ko le 05-05-2009 à 13:39:24
Reply

Marsh Posté le 05-05-2009 à 14:19:44    

bon j ai trouvé le problème si ca peut aider certain  
 
 
ca ne fonctionne pas avec ie6 mais bien avec firefox
<tr id="voirinvite">
</tr>
 
ce que j ai fait : marche sur les deux maintenant
<tr>
<div id="voirinvite">
</div>
</tr>

Reply

Marsh Posté le 05-05-2009 à 14:23:50    

Plutôt que d'injecter du HTML directement dans ta page, utilise plutôt le DOM pour insérer et modifier ton arbre.


---------------
Kao ..98 - Uplay (R6S) : kao98.7.62x39 - Origin (BF4, BF1) : kntkao98
Reply

Marsh Posté le 05-05-2009 à 14:25:59    

kao98 a écrit :

Plutôt que d'injecter du HTML directement dans ta page, utilise plutôt le DOM pour insérer et modifier ton arbre.


 
je ne sais meme pas ce que c'est !  :)  
 
merci du conseil je regarderais a l occasion

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed