[Ajax] request-ergebnis in js-variable

Bububoomt

ohne Vertrauen
ID: 10361
L
28 April 2006
19.666
769
Wie bekommt man den Rückgabe wert eines Ajax requestes in ein JS variable?

Bei aufruf einer Funktion soll einfach eine Variable neu gesetzt werden (Time wert, wird von dem phpscript zurückgegeben).

We macht man das?
 
Rückgabewert ist responseText den du beim readyState 200 auslesen kannst.

Alternativ mit Prototype
Code:
update = new Ajax.Updater('id_des_elements','url_des_scripts');
 
Ich verwend dazu fast immer dieses kleine Script:

PHP:
/*@cc_on @if (@_win32 && @_jscript_version >= 5) if (!window.XMLHttpRequest)
function XMLHttpRequest() { return new ActiveXObject('Microsoft.XMLHTTP') }
@end @*/

function subRequestReturn(sURL, sMethod, sVars) {
	try {
		var xmlhttp = new XMLHttpRequest;
	} catch (e) {
		return false;
	}
		
	sMethod = sMethod.toUpperCase();
	try {
		if (sMethod == 'GET') {
			if (typeof sVars != 'undefined' && sVars)
				sURL += '?' + sVars;
			sVars = '';
		}

		xmlhttp.open(sMethod, sURL, false);
		
		if (sMethod == 'POST') {
			xmlhttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
			//xmlhttp.setRequestHeader('Method', 'POST '+sURL+' HTTP/1.1');	
		}
		
		xmlhttp.send(sVars);
			
		return xmlhttp.responseText;
	} catch (e) {
		return false;
	}
}

Zb einfach
PHP:
var meineVar = subRequestReturn('index.php?modus=ajax', 'GET');
aufrufen und fertig.

*edit* das ganze hab ich mal irgendwo im Netz gefunden und abgewandelt, ist freiverfügbar gewessen.
 
Super, dass klappt, solltest vielleicht in den Snippets thread packen? das ja echt simpel zu nutzen.
 
Hmm, also irgendwie kann der ie 6.0 das nicht, da kommt die Meldung false, von der Zeile 9, und bei Ausgabe von alert(e) steht [object Error].

Schon mal gehabt das Problem!?


*edit*

Für doofe wie mich

/*@cc_on @if (@_win32 && @_jscript_version >= 5) if (!window.XMLHttpRequest)
function XMLHttpRequest() { return new ActiveXObject('Microsoft.XMLHTTP') }
@end @*/


das nicht nur ein kommentar wie von mir angenommen und entfernt...
dann gehts auch mit dem Ie 6....
 
Zuletzt bearbeitet: