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

---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
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