Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2384 connectés 

  FORUM HardWare.fr
  Programmation
  Divers

  probleme location.reload() en ajax sous IE 7

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

probleme location.reload() en ajax sous IE 7

n°1560819
kakahn
Posté le 15-05-2007 à 18:02:00  profilanswer
 

Bonjour,
 
je développe dans le cadre de mon entreprise un applicatif d'emailing avec tracking etc ...
 
Dans le menu de gestion d'images je rencontre un petit soucis d'incompatibilité avec firefox et IE 7.
 
Je vous explique les fonctionnalités de cette page :
 
toute simple, fonction php qui fait un listing des images présentes dans le répertoire sur la droite un petit encadré ( fieldset avec pour nom Aperçu ),
 
Et à l'aide d'ajax lorsque je passe la souris sur les noms d'images, une fonction php miniaturise l'image et un petit aperçu apparaît dans l'encadré. Jusque la tout va bien ( que ce soit sous firefox ou IE).
 
Une autre fonctionnalité de cette page est la suppression d'images. En effet, pour supprimer j'ai également utiliser de l'ajax qui dès que l'on clique sur le nom d'une image supprime l'image du fichier puis fait un reload de la page pour faire disparaître le nom de l'image de la liste.
 
Le problème ( il en fallait bien un  :pfff: ), et que sous firefox tout cela se passe bien par contre sous IE 7, c'est la cata. La page ne s'actualise pas  :cry:  
 
Voici ma fonction :

Code :
  1. function Suppression(img) {
  2. if (window.XMLHttpRequest) { // Mozilla, Safari, ...
  3.     XmlReq = new XMLHttpRequest();
  4. }
  5. else if (window.ActiveXObject) { // IE
  6.     XmlReq = new ActiveXObject("Microsoft.XMLHTTP" );
  7. }
  8. else {
  9. alert('Ca marche pas');
  10. }
  11. XmlReq.onreadystatechange=  function () {
  12. if (XmlReq.readyState == 4) {
  13.             if (XmlReq.status == 200) {
  14.    document.location.reload();
  15.             }
  16.      else {
  17.                 alert(XmlReq.status+" : "+XmlReq.statusText);
  18.             }
  19.   }
  20. };
  21. var donnees= "img="+img;
  22. XmlReq.open('POST','suppression_img.php',true);
  23. XmlReq.setRequestHeader("Content-Type", "application/x-www-form-urlencoded" ); 
  24. XmlReq.send(donnees);
  25. }


 
Pour essayer de repérer le disfonctionnement, j'ai positionné 2 alerts :
 

Code :
  1. function Suppression(img) {
  2. if (window.XMLHttpRequest) { // Mozilla, Safari, ...
  3.     XmlReq = new XMLHttpRequest();
  4. }
  5. else if (window.ActiveXObject) { // IE
  6.     XmlReq = new ActiveXObject("Microsoft.XMLHTTP" );
  7. }
  8. else {
  9. alert('Ca marche pas');
  10. }
  11. XmlReq.onreadystatechange=  function () {
  12. alert(XmlReq.readyState);
  13. if (XmlReq.readyState == 4) {
  14.    alert(XmlReq.status);
  15.             if (XmlReq.status == 200) {
  16.    document.location.reload();
  17.             }
  18.      else {
  19.                 alert(XmlReq.status+" : "+XmlReq.statusText);
  20.             }
  21.   }
  22. };
  23. var donnees= "img="+img;
  24. XmlReq.open('POST','suppression_img.php',true);
  25. XmlReq.setRequestHeader("Content-Type", "application/x-www-form-urlencoded" ); 
  26. XmlReq.send(donnees);
  27. }


 
Voila ce que me fait IE !

Code :
  1. 1
  2. 1
  3. 1
  4. 4
  5. 200
  6. 4  (ici il devrait être dans le if)
  7. 200
  8. 4
  9. 200


puis actualisation de la page  :??: !!!
 
1ère remarque: la page s'actualise tout de même quand je mets les alerts.
2ème remarque: pourquoi alors que Xmlreq.status = 200 il ne rentre pas dans le if.
 
Voila j'espère avoir été assez clair :)
 
Je vous remercie d'avance pour vos réponses qui j'espère m'aideront héhé :)
 
Amicalement,
 
Julien


Message édité par kakahn le 15-05-2007 à 20:41:03
mood
Publicité
Posté le 15-05-2007 à 18:02:00  profilanswer
 

n°1561083
omega2
Posté le 16-05-2007 à 12:23:18  profilanswer
 

Déplace dans HTML/CSS/Javascript, t'auras plus de chance d'obtenir des réponses.
 
Mais déjà qu'est ce qui te dis qu'il ne rentre pas dans le "if"? Ca n'est pas par ce qu'il y rentre une premiére fois qu'il n'aura pas le temps d'y rerentrer avant que le serveur lui renvoye le fichier ou qu'il relise le fichier qu'il a en cache. D'ailleurs vu que tu dis que le rafraichissement à bien lieux, c'est qu'il doit y passer dans ton "if". Sinon la page ne serait pas rafraichis.
 
En fait si tu veux savoir si IE passe ou non dans le "if", il n'y a que deux solutions fiables : mettre un "alert" dans le "if" ou débugguer le script en pas à pas.


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Divers

  probleme location.reload() en ajax sous IE 7

 

Sujets relatifs
Probleme OpenGlProbleme de message d'erreur sur une fonction SNMP
[PHP] Probleme connexion FTPProbleme OpenGl
Avis site web + Problème Compatibilité[PHP] problème d'écriture dans un fichier
Urgent!!!!!!!! Problème sous Accessprobleme avec xml_load_string
Problème de regexp en JSProblème formulaire JS
Plus de sujets relatifs à : probleme location.reload() en ajax sous IE 7


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR