Hallo Zusammen,
der folgende Code Auszug stellt den AJAX Request dar, wie man ihn überall auf dem Internet findet. Ich habe ihn nun allerdings um 4 variablen modifiziert; indem sowohl die Zieldatei (bspw. create_user.php), das zu verändernde div (hier: dynamic_element) und 2 weitere Variablen übermitteln kann.
Nun aber mein Problem; seitdem ich versucht habe verschiedene divs durch dynamic_element zu verändern, geht das skript plötzlich nicht mehr. Hat jemand eine Idee warum? Irgendwie scheint die funktion interpretRequest keine Variablen zu akzeptieren.
Besten Dank,
johnny
<script type="text/javascript">
<!--
var request = false;
// Request senden
/*
*value --> zu übermittelnder Wert
*direction --> Zieldatei
*post_var --> variable für $_POST
*/
function setRequest(direction, dynamic_element, value1, value2, value3) {
// Request erzeugen
if (window.XMLHttpRequest) {
request = new XMLHttpRequest(); // Mozilla, Safari, Opera
} else if (window.ActiveXObject) {
try {
request = new ActiveXObject('Msxml2.XMLHTTP'); // IE 5
} catch (e) {
try {
request = new ActiveXObject('Microsoft.XMLHTTP'); // IE 6
} catch (e) {}
}
}
// überprüfen, ob Request erzeugt wurde
if (!request) {
alert("Kann keine XMLHTTP-Instanz erzeugen");
return false;
} else {
var url = direction;
// Request öffnen
request.open('post', url, true);
// Requestheader senden
request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
// Request senden
request.send('value1'+'='+value1+'&'+'value2'+'='+value2+'&'+'value3'+'='+value3);
// Request auswerten
request.onreadystatechange = interpretRequest(dynamic_element);
}
}
// Request auswerten
function interpretRequest(which_element) {
switch (request.readyState) {
// wenn der readyState 4 und der request.status 200 ist, dann ist alles korrekt gelaufen
case 4:
if (request.status != 200) {
//alert("Der Request wurde abgeschlossen, ist aber nicht OK\nFehler:"+request.status); --> stresst USER eher
} else {
var content = request.responseText;
// den Inhalt des Requests in das <div> schreiben
document.getElementById(which_element).innerHTML = content;
}
break;
default:
break;
}
}
//-->
</script>
P.S. Kommentar im Skript ist zum Teil überholt.