2010-09-30 7 views
0

Ce script que j'ai écrit fonctionne parfaitement sur IE! Il fonctionne sur Chrome et FireFox la première fois que vous effectuez une action, mais il échoue sur le reste.Ajax ne fonctionne pas correctement dans Chrome/FireFox

Le script est simple. Vous pouvez ajouter ou supprimer un utilisateur et chaque fois que vous ajoutez ou supprimez un utilisateur, il met à jour la liste des mises à jour.

function Add() { 
    http_request = false; 
    cache=Math.random(); 
    var username=document.getElementById('username').value; 
    if (window.XMLHttpRequest) { // Mozilla, Safari,... 
     http_request = new XMLHttpRequest(); 
     if (http_request.overrideMimeType) { 
     http_request.overrideMimeType('text/html'); 
     } 
    } else if (window.ActiveXObject) { // IE 
     try { 
     http_request = new ActiveXObject("Msxml2.XMLHTTP"); 
     } catch (e) { 
     try { 
      http_request = new ActiveXObject("Microsoft.XMLHTTP"); 
     } catch (e) {} 
     } 
    } 
    if (!http_request) { 
     return false; 
    } 
    http_request.onreadystatechange=function(){ if (http_request.readyState==4 && http_request.status==200){ if (http_request.responseText=="OK"){ Update(); } else { document.getElementById('Response').innerHTML=http_request.responseText; } } } 
    http_request.open('POST', 'add.php?username='+username+'&cache='+cache, true); 
    http_request.send(null); 
} 

function Delete(username) { 
    http_request = false; 
    if (window.XMLHttpRequest) { // Mozilla, Safari,... 
     http_request = new XMLHttpRequest(); 
     if (http_request.overrideMimeType) { 
     http_request.overrideMimeType('text/html'); 
     } 
    } else if (window.ActiveXObject) { // IE 
     try { 
     http_request = new ActiveXObject("Msxml2.XMLHTTP"); 
     } catch (e) { 
     try { 
      http_request = new ActiveXObject("Microsoft.XMLHTTP"); 
     } catch (e) {} 
     } 
    } 
    if (!http_request) { 
     return false; 
    } 
    http_request.onreadystatechange=function(){ if (http_request.readyState==4 && http_request.status==200){ Update(); } } 
    http_request.open('POST', 'delete.php?username='+username, true); 
    http_request.send(null); 
} 

function Update() { 
    http_request = false; 
    if (window.XMLHttpRequest) { // Mozilla, Safari,... 
     http_request = new XMLHttpRequest(); 
     if (http_request.overrideMimeType) { 
     http_request.overrideMimeType('text/html'); 
     } 
    } else if (window.ActiveXObject) { // IE 
     try { 
     http_request = new ActiveXObject("Msxml2.XMLHTTP"); 
     } catch (e) { 
     try { 
      http_request = new ActiveXObject("Microsoft.XMLHTTP"); 
     } catch (e) {} 
     } 
    } 
    if (!http_request) { 
     return false; 
    } 
    http_request.onreadystatechange=function(){ if (http_request.readyState==4 && http_request.status==200){ document.getElementById("list").innerHTML=http_request.responseText; } } 
    http_request.open('GET', 'list.php', true); 
    http_request.send(null); 
} 

S'il vous plaît aider et je vous remercie

+0

Quel est le message d'erreur? Que voulez-vous dire par échoue? –

+0

Ceci n'est pas un message d'erreur. Dans IE, vous pouvez ajouter, supprimer les utilisateurs sans aucun problème. Dans FireFox et Chrome, vous pouvez ajouter ou supprimer 1 utilisateur, puis lorsque vous essayez d'ajouter ou de supprimer un deuxième utilisateur, cela échoue. – CAKyleX

Répondre

0

utilisation jQuery. Vous devrez écrire beaucoup moins de code et il fonctionnera dans tous les navigateurs.

+0

Merci, mais je voudrais toujours savoir le problème. De plus, je n'ai pas envie d'apprendre JQuery pour le moment. :) – CAKyleX

+0

Il n'y a pas grand-chose à apprendre - et vous économiserez des heures en investissant 30 minutes ... –

+0

WOW! jQuery est génial! Je vais essayer de l'écrire dans jQuery maintenant. Merci à tous! :) Mais si quelqu'un ne comprend pas le problème s'il vous plaît le poster. – CAKyleX

Questions connexes