Ajax Problem
mixmastertobsi
- php
0 hotti0 Edgar Ehritt
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);
}
}
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
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