mixmastertobsi: Ajax Problem

Hallo,

ich habe mir eine kleine AJAX Funktion geschrieben.
Die Funktiont läuft - jedoch hat sie einen kleinen fehler.

Wenn ich zwei AJAX Objekt gleichzeitig laden möchte, wir die Antwort des zweiten AjaxObjekts in beiden layern ausgegeben.

Wo liegt denn mein Fehler?

ajaxload = 0;
//AJAX
function ajax(file,ausgabe,vars,method){
ajaxload = ajaxload + 1;

if (window.XMLHttpRequest) { // Mozilla, Safari, ...  
	window["ajaxloaded"+ajaxload] = new XMLHttpRequest();  
} else if (window.ActiveXObject) { // IE  
	window["ajaxloaded"+ajaxload] = new ActiveXObject("Microsoft.XMLHTTP");  
}  
window["ajaxloaded"+ajaxload].overrideMimeType('text/html;charset=iso-8859-1');  
window["ajaxloaded"+ajaxload].onreadystatechange= function() {  
	if(window["ajaxloaded"+ajaxload].readyState == 1){  
		if(document.getElementById("loading")) {  
			document.getElementById("loading").style.display='block';  
		} else {  
			document.body.innerHTML = "<div id='loading'><img src='gfx/site/loading.gif' /></div>"+document.body.innerHTML;  
			document.getElementById("loading").style.display='block';  
		}  
	}  
	if(window["ajaxloaded"+ajaxload].readyState == 4){  
		document.getElementById("loading").style.display='none';  
		alert (ausgabe);  
		if (ausgabe!="") {  
			document.getElementById(ausgabe).innerHTML = window["ajaxloaded"+ajaxload].responseText;  
		}  
	}  
}  
if (method = "post") {  
	window["ajaxloaded"+ajaxload].open("POST", file, true);  
	window["ajaxloaded"+ajaxload].setRequestHeader("Content-Type","application/x-www-form-urlencoded; charset=UTF-8");  
	vars = encodeURI(vars);  
	window["ajaxloaded"+ajaxload].send(vars);  
} else {  
	window["ajaxloaded"+ajaxload].open("GET", file+"?"+vars);  
	window["ajaxloaded"+ajaxload].send(null);  
}  

}

  1. Hallo,

    Wenn ich zwei AJAX Objekt gleichzeitig laden möchte, wir die Antwort des zweiten AjaxObjekts in beiden layern ausgegeben.

    Wo liegt denn mein Fehler?

    Wozu brauchst Du zwei XHR-Objekte gleichzeitig?

    Hotti

  2. Hallo Mixmastertobsi,

    ajaxload = 0;

    //AJAX
    function ajax(file,ausgabe,vars,method){
    ajaxload = ajaxload + 1;

    if (window.XMLHttpRequest) { // Mozilla, Safari, ...
    window["ajaxloaded"+ajaxload] = new XMLHttpRequest();
    } else if (window.ActiveXObject) { // IE
    window["ajaxloaded"+ajaxload] = new ActiveXObject("Microsoft.XMLHTTP");
    }
    window["ajaxloaded"+ajaxload].overrideMimeType('text/html;charset=iso-8859-1');

    /* die Methode overrideMimeType ist nicht standardisiert  
       der IE kennt sie beispielsweise nicht ([link:http://msdn.microsoft.com/de-de/library/ms760305%28en-us,VS.85%29.aspx@title=Schnittstelle])  
       serverseitig ist auf den korrekten Mediatypen zu achten */  
    

    window["ajaxloaded"+ajaxload].onreadystatechange= function() {
    if(window["ajaxloaded"+ajaxload].readyState == 1){
    if(document.getElementById("loading")) {
    document.getElementById("loading").style.display='block';
    } else {
    document.body.innerHTML = "<div id='loading'><img src='gfx/site/loading.gif' /></div>"+document.body.innerHTML;
    document.getElementById("loading").style.display='block';
    }
    }
    if(window["ajaxloaded"+ajaxload].readyState == 4){
    document.getElementById("loading").style.display='none';
    alert (ausgabe);
    if (ausgabe!="") {
    document.getElementById(ausgabe).innerHTML = window["ajaxloaded"+ajaxload].responseText;

    			/* hier wird der Inhalt in das aufrufende  
    			   Dokument eingepflegt. Wird pro Aufruf  
    			   der Funktion ajax() ein anderer Wert  
    			   für "ausgabe" übergeben und besteht zu-  
    			   dem ein Element mit dieser ID, über-  
    			   schreiben sich die Ausgaben mehrerer  
    			   AJAX-Anfragen nicht. */  
    
      	}  
      }  
    

    }
    if (method = "post") {
    window["ajaxloaded"+ajaxload].open("POST", file, true);
    window["ajaxloaded"+ajaxload].setRequestHeader("Content-Type","application/x-www-form-urlencoded; charset=UTF-8");
    vars = encodeURI(vars);
    window["ajaxloaded"+ajaxload].send(vars);
    } else {
    window["ajaxloaded"+ajaxload].open("GET", file+"?"+vars);
    window["ajaxloaded"+ajaxload].send(null);
    }
    }

      
      
    Gruß aus Berlin!  
    eddi