probleme location.reload() en ajax sous IE 7

probleme location.reload() en ajax sous IE 7 - HTML/CSS - Programmation

Marsh Posté le 21-05-2007 à 10:17:04    

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

Reply

Marsh Posté le 21-05-2007 à 10:17:04   

Reply

Marsh Posté le 21-05-2007 à 10:22:59    

j'ai déja tester window.location au lieu de document je préviens :)

Reply

Sujets relatifs:

Leave a Replay

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