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?