Io ho due funzioni e in una eseguo l'altra assegnando poi a una variabile il valore di ritorno dell'altra funzione, solo che non va. Questo è il codice:
codice:
function inviaPOST(pagina, dati) {
if (ajax) {
// inizializzo la richiesta in post
ajax.open("post", pagina, true);
// imposto il giusto header
ajax.setRequestHeader("content-type", "application/x-www-form-urlencoded");
ajax.setRequestHeader("connection", "close")
// effettuo la richiesta inviando i dati formati da coppie chiave-valore
// dati = escape(dati);
ajax.send(dati);
ajax.onreadystatechange = function() {
if(ajax.readyState === 4) {
if(ajax.status == 200) {
return ajax.responseText;
}else{
alert("Operazione fallita, errore numero " + ajax.status);
return null;
}
}
}
}
}
function controlloErrore(id_elem, id_span) {
var risposta = null;
risposta = inviaPOST('controllo.php', 'azione='+id_elem + '&' + id_elem+'='+prendiElementoDaId(id_elem).value);
if (risposta) {
if (risposta != '') {
prendiElementoDaId(id_elemento).className = 'textbox2';
cambiaTesto(id_span, risposta);
}else{
prendiElementoDaId(id_elemento).className = 'textbox1';
cambiaTesto(id_span, '');
}
}
return risposta;
}
La prima funzione la esegue senza problemi e se io metto prima di "return ajax.responseText;" un alert mi mostra correttamente il valore, ma se invece io metto alert(risposta) nella seconda funzione dopo "risposta = inviaPOST('controllo.php', 'azione='+id_elem + '&' + id_elem+'='+prendiElementoDaId(id_elem).value);" allora mi appare "undefined".
Come mai la prima funzione non restituisce correttamente il valore che poi viene assegnato a "risposta"?