Phillip Tole
Neues Mitglied
Hallo,
kann mir jemand sagen warum untenstehender Code nicht funktioniert? Irgendwie wird die Funktion interpretRequest nicht aufgerufen. Wie kann ich das machen? Dieser Code:
request.onreadystatechange = new interpretRequest(value, nr, variation);
interpretRequest(value, nr, variation);
...funktioniert nicht.
Komischerweise funktioniert das ganze aber doch, wenn ich unter der Zeile:
function interpretRequest(value, nr, variation) {
alert();
...schreibe, nur das ich dann eben einen unerwünschten Alert drin habe.
Durch diese Zeile:
var nochmal = new setRequest(value.concat('b'), nr, 'b');
...führt er dann wie gewünscht beide Zeilen nochmal mit anderen Werten aus.
Danke für eure Hilfe.
<!--
var request = false;
var nr;
var variation;
function setRequest(value, nr, variation) {
this.request = false;
this.nr = nr;
this.variation = variation;
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) {}
}
}
if (!request) {
alert("Kann keine XMLHTTP-Instanz erzeugen");
return false;
} else {
var url = "/weiterleitung.php";
request.open('post', url, true);
request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
request.send('name='+value);
request.onreadystatechange = new interpretRequest(value, nr, variation);
}
}
function interpretRequest(value, nr, variation) {
switch (request.readyState) {
case 4:
if (request.status != 200) {
alert("Der Request wurde abgeschlossen, ist aber nicht OK\nFehler:"+request.status);
} else {
var content = request.responseText;
if(variation=='a'){
if(nr == 2){
document.getElementById('ergaenz2').innerHTML = content;
}
else if(nr==3){
document.getElementById('ergaenz3').innerHTML = content;
}
else if(nr==4){
document.getElementById('ergaenz4').innerHTML = content;
}
var nochmal = new setRequest(value.concat('b'), nr, 'b');
}
else if(variation=='b')
{
if(nr==2)
{
document.getElementById('reqErgaenz2').innerHTML = content;
}
else if(nr==3){
document.getElementById('reqErgaenz3').innerHTML = content;
}
}
}
break;
default:
break;
}
}
//-->
kann mir jemand sagen warum untenstehender Code nicht funktioniert? Irgendwie wird die Funktion interpretRequest nicht aufgerufen. Wie kann ich das machen? Dieser Code:
request.onreadystatechange = new interpretRequest(value, nr, variation);
interpretRequest(value, nr, variation);
...funktioniert nicht.
Komischerweise funktioniert das ganze aber doch, wenn ich unter der Zeile:
function interpretRequest(value, nr, variation) {
alert();
...schreibe, nur das ich dann eben einen unerwünschten Alert drin habe.
Durch diese Zeile:
var nochmal = new setRequest(value.concat('b'), nr, 'b');
...führt er dann wie gewünscht beide Zeilen nochmal mit anderen Werten aus.
Danke für eure Hilfe.
<!--
var request = false;
var nr;
var variation;
function setRequest(value, nr, variation) {
this.request = false;
this.nr = nr;
this.variation = variation;
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) {}
}
}
if (!request) {
alert("Kann keine XMLHTTP-Instanz erzeugen");
return false;
} else {
var url = "/weiterleitung.php";
request.open('post', url, true);
request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
request.send('name='+value);
request.onreadystatechange = new interpretRequest(value, nr, variation);
}
}
function interpretRequest(value, nr, variation) {
switch (request.readyState) {
case 4:
if (request.status != 200) {
alert("Der Request wurde abgeschlossen, ist aber nicht OK\nFehler:"+request.status);
} else {
var content = request.responseText;
if(variation=='a'){
if(nr == 2){
document.getElementById('ergaenz2').innerHTML = content;
}
else if(nr==3){
document.getElementById('ergaenz3').innerHTML = content;
}
else if(nr==4){
document.getElementById('ergaenz4').innerHTML = content;
}
var nochmal = new setRequest(value.concat('b'), nr, 'b');
}
else if(variation=='b')
{
if(nr==2)
{
document.getElementById('reqErgaenz2').innerHTML = content;
}
else if(nr==3){
document.getElementById('reqErgaenz3').innerHTML = content;
}
}
}
break;
default:
break;
}
}
//-->