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:
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".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; }
Come mai la prima funzione non restituisce correttamente il valore che poi viene assegnato a "risposta"?

Rispondi quotando