Buon giorno,
Nn sono pratico di ajax.
Ho adattato questo script per far funzionare una select dinamica REGIONI / PROVINCIA/COMUNI che uso in una form all'interno di una pagina asp.
Lo script sembrerebbe funzionare ma, 9 volte su 10 , quando apro la pagina e clicco sulla prima select REGIONI , non succede nulla , sembra incantata. Solo dopo alcuni tentativi , lo script sembre sbloccarsi e funziona.
Il procedimento è il seguente: seleziono la select REGIONE(CAMPO O1) e in base alla regione scelta si aggiorna la select PROVINCIE(CAMPO O2),po in base alla PROVINCIA selta si aggiorna la select citta( CAMPO O3)
Siccome è uno script recuperato diverso tempo fa non vorrei che avesse qualcosa di obsoleto , nn so....
Potete aiutarmi...
<script type="text/javascript" language="javascript">
var ricerca_pro;
var valorecampo
function cerca()
{
valorecampo = document.startsearch.O1.options[document.startsearch.O1.selectedIndex].value;
document.startsearch.O3.length=0;
document.startsearch.O3.options[document.startsearch.O3.options.length]= new Option("Tutti i Comuni","");
// branch for native XMLHttpRequest object
if (window.XMLHttpRequest) {
ricerca_pro = new XMLHttpRequest();
ricerca_pro.onreadystatechange = ricevi;
ricerca_pro.open("GET", "cercaprovince.asp?reg="+valorecampo,true);
ricerca_pro.send(null);
// branch for IE/Windows ActiveX version
} else if (window.ActiveXObject) {
ricerca_pro = new ActiveXObject("Microsoft.XMLHTTP");
if (ricerca_pro) {
ricerca_pro.onreadystatechange = ricevi;
ricerca_pro.open("GET", "cercaprovince.asp?noCache=" + new Date().getSeconds() + '' + Math.floor(Math.random() * (9999))+"®="+valorecampo,true);
ricerca_pro.send();
}
}
}
function ricevi() {
var strRes;
var arrValori;
if (ricerca_pro.readyState == 4) {
strRes=ricerca_pro.responseText;
arrValori=strRes.split("|");
document.startsearch.O2.options.length=0;
document.startsearch.O2.options[document.startsearch.O2.options.length]= new Option("Tutte le Provincie","");
for(i=0;i<arrValori.length;i++)
{
document.startsearch.O2.options[document.startsearch.O2.options.length]= new Option(arrValori[i].split("|"));
}
}
}
var trova_pro;
var valorecampoP
function trova()
{
valorecampoP = document.startsearch.O2.options[document.startsearch.O2.selectedIndex].value;
// branch for native XMLHttpRequest object
if (window.XMLHttpRequest) {
trova_pro = new XMLHttpRequest();
trova_pro.onreadystatechange = ricezione;
trova_pro.open("GET", "cercacitta.asp?provincia="+valorecampoP,true) ;
trova_pro.send(null);
// branch for IE/Windows ActiveX version
} else if (window.ActiveXObject) {
trova_pro = new ActiveXObject("Microsoft.XMLHTTP");
if (trova_pro) {
trova_pro.onreadystatechange = ricezione;
trova_pro.open("GET", "cercacitta.asp?noCache=" + new Date().getSeconds() + '' + Math.floor(Math.random() * (9999))+"&provincia="+valorecampoP,true);
trova_pro.send(null);
}
}
}
function ricezione() {
var strRes;
var arrValori;
if (trova_pro.readyState == 4) {
strRes=trova_pro.responseText;
arrValori=strRes.split("|");
document.startsearch.O3.options.length=1;
for(i=0;i<arrValori.length;i++)
{
document.startsearch.O3.options[document.startsearch.O3.options.length]= new Option(arrValori[i].split("|"));
}
}
}
</script>

Rispondi quotando
