Ciao a tutti, eccomi qui a chiedere un parere a chi ne sa più di me. Sto facendo un piccolo progetto personale che comprende delle select che vengono popolate dalla scelta della select precedente (per essere più chiaro 1^ slc: Regione; 2^ Slc: provincia; 3^ slc: comune). Per far questo visto che mi sono messo in testa di imparare ajax ho creato la seguente funzione
Ciao a tutti, eccomi qui a chiedere un parere a chi ne sa più di me. Sto facendo un piccolo progetto personale che comprende delle select che vengono popolate dalla scelta della select precedente (per essere più chiaro 1^ slc: Regione; 2^ Slc: provincia; 3^ slc: comune). Per far questo visto che mi sono messo in testa di imparare ajax ho creato la seguente funzione
function richiediPrv(oEvent)
{
oEvent = oEvent || window.event;
var oRegs = oEvent.target || oEvent.srcElement;
var oReg = oRegs.value;
var oGet = oRegs.name;
var oXHR = zXmlHttp.createRequest();
oXHR.open("get", "recuperaDati.php?" + oGet + "=" + oReg, true);//metodo, pagina e richiesta asincrona
oXHR.onreadystatechange = function()// si accerta che la comunicazione sia stata corretta, quindi readystate sia impostato sul valore 4
{
if(oXHR.readyState == 4)
{
if(oXHR.status == 200 || oXHR.status == 304)// si verifica che la risposta alla richiesta contenga i dati in modo corretto. Se 200 risposta corretta dal server, se 304 risposta correta ma dalla cache
{
setTimeout(function(){mostraDatiOttenuti(oXHR.resp onseText,oRegs);},250);
}else{
mostraDatiOttenuti("Si è verificato un errore:" + oXHR.statusText);
}
}
}
oXHR.send(null);// invio definitivamente la richiesta (obbligatorio sempre) specifico null perchè la richiesta con get non ha bisogno di corpo perchè già passato con l'url
}
function mostraDatiOttenuti(sText,oElemento)
{
var selectPrv = oElemento.nextSibling.nextSibling.nextSibling.next Sibling;
//alert(sText);
selectPrv.disabled = false;
selectPrv.innerHTML = sText;
}
che viene richiamata al change del campo select. il fatto è che funziona tutto in firefox e chrome, mentre in explorer non va. Ho provato a mettere la funzione mostraDatiOttenuti() in un setTimer pensando che desse quello dei problemi, ma niente continua a segnarmi l'errore run-time sconosciuto sulla riga che riporta selectPrv.innerHTML = sText; ma se io visualizzo cosa è sText mi viene restituito correttamente il codice html <select name="... ></select> dove è l'errore? qualcuno può dirmi dove sbaglio? Ciao e grazie a tutti