Premetto che sono alle prime armi e conosco le basi di javascript e qualcosa di php.
Trovandomi in necessità di eseguire del codice php su richiesta dell'utente, alla pressione di un pulsante, ho scoperto ajax. Ho fatto qualche prova, ma mi sono bloccato su questo codice, presumo banale, che non riesco a far funzionare:

codice:
function assegnaXMLHttpRequest() {
	var
		XHR = null,
		browserUtente = navigator.userAgent.toUpperCase();
	if(typeof(XMLHttpRequest) === "function" || typeof(XMLHttpRequest) ===
"object")
		XHR = new XMLHttpRequest();
	else if(window.ActiveXObject && browserUtente.indexOf("MSIE 4") < 0) {
		if(browserUtente.indexOf("MSIE 5") < 0)
			XHR = new ActiveXObject("Msxml2.XMLHTTP");
		else
			XHR = new ActiveXObject("Microsoft.XMLHTTP");
	}
	return XHR;
};
	

	function invia() {
	alert('invia');
	
	ajax = assegnaXMLHttpRequest();
	if(ajax) {
		alert('ajax');
		document.getElementById("stato").innerHTML = "Operazione in corso...";
		dati = form1.testo.value;
		ajax.open("POST", "http://localhost/ajax2.php", false);
		alert('ajax open');
		ajax.setRequestHeader("content-type", "application/x-www-form-urlencoded");
		ajax.send(dati);
		alert('ajax send');
		ajax.onreadystatechange = function() {
			if(ajax.readyState === 4) {
				alert('4');
				if(ajax.status==200){
					alert(ajax.responseText);
					document.getElementById('stato').innerHTML = ajax.responseText;
				}
				else{
				alert('Non funziona!');
				}
			}
			else {
			alert(ajax.readyState);
			}
		}
	}
}
codice:
<body>
<form id="form1">
<input type="text" id="testo" value="2500k" >

<input type="button" onclick="invia();" value="Invia" id="pulsante">

<input type="text" id="risposta" value="" disabled="true">

<input type="text" id="stato" value="" disabled="true">
</form>
</body>
ajax2.php:
Codice PHP:
<?php
$dati
=$_POST;
echo 
"Ciao!";
echo 
$dati;
?>
Eseguendolo gli alert arrivano fino a 'ajax send', poi non succede nulla.
E anche l'istruzione
codice:
document.getElementById("stato").innerHTML = "Operazione in corso...";
sembra non funzionare.
Dove sbaglio?

Grazie a chi saprà darmi una mano

edit: scusate, ora fondamentalmente funziona
Però l'istruzione con innerHTML non va lo stesso. E anche nel php sbaglio a stampare i dati, come dovrei fare?