Ajax: Reload nach Request

mstup

Grünschnabel
Hi!
Ich habe eine User-Verwaltung. Darin werden allen User aufgelistet. Dann lösche ich einen User mit Hilfe von Ajax. Der User ist dann zwar nicht mehr in der Datenbank, aber scheint natürlich noch im Browser auf. Jetzt möchte ich diese User-Tabelle auch mit Ajax nachladen.
Wie würdet ihr das machen? Mein Ansatz ist folgender:
Code:
function ajax() {
	var xmlHttp;
	try {
		/*Firefox, Opera 8.0+, Safari*/
		xmlHttp = new XMLHttpRequest();
	} catch (e) {
		try {
			/*IE 6.0+*/
			xmlHttp = new ActiveXObject('Msxml2.XMLHTTP');
		} catch (e1) {
			try {
				/*IE 5.5+*/
				xmlHttp = new ActiveXObject('Microsoft.XMLHTTP');
			} catch (e2) {
				alert('AJAX isn\'t supported by your browser!');
				return false;
			}
		}
	}
	return xmlHttp;
}
xmlHttp = ajax();
xmlHttp.onreadystatechange = handleResponse;

function handleResponse () {
	if (xmlHttp.readyState == 4) {
		document.getElementById('loader').style.display = 'none';
		if (type == 'alert') {
			alert(xmlHttp.responseText);
		}
		if (type == 'innerHTML') {
			document.getElementById('content_wrapper').innerHTML = xmlHttp.responseText;
		}
	}
	if (reload === true) {
		reloadContent('user.php');
		reload = false;
	}
}

function deleteUser(id, user) {
	var handle = confirm('Den User ' + user + ' mit der ID ' + id + ' wirklich löschen?');
	if (handle === false) {
		return false;
	}
	type = 'alert';
	reload = true;
	document.getElementById('loader').style.display = 'block';
	xmlHttp.open('GET', 'delete_user.php?id=' + id, true);
	xmlHttp.send(null);
}

function reloadContent(url) {
	type = 'innerHTML';
	var time = new Date();
	var now = time.getTime();
	document.getElementById('loader').style.display = 'block';
	xmlHttp.open('GET', url + '?' + now, true);
	xmlHttp.send(null);
}
Doch das funktioniert nicht. Ich bekomme in der Firefox Fehlerkonsole den Error: too much recursion
Ich hoffe ihr könnt mir helfen.

Mfg mstup
 
Moin,

du setzt in handleResponse() zu früh die schliessende Klammer für den Block, welcher den readystate prüft, dadurch befindet sich jener Teil:
Code:
if (reload === true) {
		reloadContent('user.php');
		reload = false;
	}
ausserhalb des Blocks, was diesen Fehler verursacht.
 
Zurück