karldetlef
Erfahrenes Mitglied
Hallo zusammen,
ein besonderes Dankeschön geht erst einmal an Sven Mintel für sein Tutorial
http://www.tutorials.de/forum/javas...x-http-requests-unter-kontrolle-behalten.html
Mein Problem ist folgendes:
Ich möchte, anstatt eine "oncomplete"-Funktion aufzurufen direkt die ID eines Feldes übergeben. In dieses Feld soll dann per innerHTML die Rückgabe des PHP-Skriptes geschrieben werden.
(Die kritische Stelle im Skript ist bei
//Zuweisen der verarbeitenden Funktion
Anbei noch einmal der Code:
Und ich rufe es so auf:
Mangels meiner Syntax Kenntnisse ist es mir nicht möglich der Aufruf der Funktion mit "ajax" als Objekt durch das document.getElementById(oncomplete).innerHtml.... zu ersetzten.
Ich hab mal folgendes versucht:
Oder auch this.oncomplete funktioniert nicht.
Über Hilfe freue ich mich sehr.
Beste Grüsse, und allen noch ein frohes Neues.
Thomas
ein besonderes Dankeschön geht erst einmal an Sven Mintel für sein Tutorial
http://www.tutorials.de/forum/javas...x-http-requests-unter-kontrolle-behalten.html
Mein Problem ist folgendes:
Ich möchte, anstatt eine "oncomplete"-Funktion aufzurufen direkt die ID eines Feldes übergeben. In dieses Feld soll dann per innerHTML die Rückgabe des PHP-Skriptes geschrieben werden.
(Die kritische Stelle im Skript ist bei
//Zuweisen der verarbeitenden Funktion
Anbei noch einmal der Code:
Code:
ajax.request = function()
{
try{
//Erstellen [XMLHttpRequest]-Objekt
this.xhr = window.XMLHttpRequest
? new XMLHttpRequest()
: new ActiveXObject("Microsoft.XMLHTTP");
//Setzen der Übermittlungsmethode
this.method=(typeof this.method == 'undefined')
? 'GET'
: this.method;
//Aufbereiten der Daten
this.data=(this.data || '');
this.postData=(this.method=='GET')
? null
: this.data;
//Aufbereiten der URL
this.URL=(this.method=='POST' || this.data=='')
? this.URL
: (
(this.URL.indexOf('?')==-1)
? this.URL+'?'+this.data
: this.URL+'&'+this.data
);
//Initialisieren des Requests
this.xhr.open(this.method,this.URL,true);
//Senden den bei POST erforderlichen Request-Header
if(this.method=='POST')
{
this.xhr.setRequestHeader("Content-type",
"application/x-www-form-urlencoded");
this.xhr.setRequestHeader("Content-length",
this.postData.length);
this.xhr.setRequestHeader("Connection",
"close");
}
//Bei Bedarf Nutzung des Cache verhindern
if(!typeof this.nocache || this.nocache)
{
this.xhr.setRequestHeader("If-Modified-Since",
"Thu, 01 Jan 1970 00:00:00 GMT");
}
//Zuweisen der verarbeitenden Funktion
if(typeof this.oncomplete == 'function')
{
this.xhr.onreadystatechange =
function()
{
if((ajax.xhr.readyState==4) && (ajax.xhr.status==200))
{
ajax.oncomplete(ajax);
}
};
}
//Senden
this.xhr.send(this.postData);
}
catch(e)
{
try{console.log('Fehler:AJAX.request()');}
catch(e){}
}
}
Code:
<html>
<head>
<script type="text/javascript" src="ajax.js"></script>
<script type="text/javascript">
<!--
ausgabe=function()
{
var ajax = ausgabe.arguments[0];
document.getElementById('out').innerHTML = ajax.xhr.responseText;
}
//-->
</script>
</head>
<body>
<input type="text" value="leerwert" id="vorher" />
<input value="Starte Request"
onclick="AJAX(
{
'method':'POST',
'data':'ho=ha&this=that&vorher=' + document.getElementById('vorher').value,
'URL':'machdas.php',
'nocache':true,
'oncomplete':ausgabe
}
).request();"
type="button">
<div id="out"></div>
</body>
</html>
Mangels meiner Syntax Kenntnisse ist es mir nicht möglich der Aufruf der Funktion mit "ajax" als Objekt durch das document.getElementById(oncomplete).innerHtml.... zu ersetzten.
Ich hab mal folgendes versucht:
Code:
//if(typeof this.oncomplete == 'function')
//{
this.xhr.onreadystatechange =
function()
{
if((ajax.xhr.readyState==4) && (ajax.xhr.status==200))
{
document.getElementById(oncomplete) = ajax.xhr.responseText;
}
};
//}
Über Hilfe freue ich mich sehr.
Beste Grüsse, und allen noch ein frohes Neues.
Thomas