Buon giorno,
Non sono pratico di javascript /ajax e vorrei il vostro aiuto.
Ho trovato sul sito uno script per popolare 2 select dinamiche regioni+provincie.La select regioni viene popolata estraendo i record da un db e tramite l'evento onchange="cerca()"viene inviato il dato <%=rsa("strregion")%>"> alla pagina cercaprovince.asp che restituisce le province e riempie la select provincie. e fin qua tutto bene.
A me pero serviva anche la select comuni e cosi ho duplicato lo script ajax che posto per popolare anche la select comuni.
In pratica quando la SELECT PROVINCE RICEVE I DATA, tramite l'evento onchange="trova()" dovrebbe inviare il SUO DATO alla pagina cercacitta.asp?provincia e restituire i comuni.
Su firefox e Opera FUNZIONA PERFETTAMENT MENTRE mentre su IE, vengno popolate leselect REGIONI E PROVINCE MA non viene passato il dato della select province, E LA SELECT COMUNI RIMANE VUOTA se invece scrivo nella prima riga della funzione TROVA():
al posto di var valorecampo = document.postad.O2.options[document.postad.O2.selectedIndex].value;
var valorecampo = "torino";
Funziona anche su IE e vengono listati tutti i comuni della provincia di Torino
Potete aiutarmi ???
Posto il codice:
----------------------------------------------------------------------------------
SELECT REGIONI:
'apro connessione e istanzio oggetti
OpenDB(connAJAX)
'query per la prima select
strsql = "SELECT strcode,strregion FROM regioni"
rsa.open strsql
%>
<select id="REGIONE" name="O1" class="forms" onchange="cerca()">
<option selected="selected" value="">Selezionare Regione</option>
<%
do while not rsa.eof
%>
<option value="<%=rsa("strregion")%>"><%=rsa("strregion")% ></option>
<%
rsa.movenext
loop
CloseDB
%>
</select>
------------------------------------------------------------------------------------
SELECT PROVINCE:
<select name="O2" id="provincia" class="forms" onchange="trova()"> </select>
--------------------------------------------------------------------------------------
SELECT COMUNI
<select name="o3" class="forms" >
</select>
---------------------------------------------------------------------------
SCRIPT PER POPOLARE PROVINCE FUNZIONANTE:
<script language="javascript">
var ricerca_pro;
function cerca()
{
var valorecampo = document.postad.O1.options[document.postad.O1.selectedIndex].value;
// 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?reg="+valorecampo,true);
ricerca_pro.send();
}
}
}
function ricevi() {
var strRes;
var arrValori;
if (ricerca_pro.readyState == 4) {
strRes=ricerca_pro.responseText;
arrValori=strRes.split("|");
document.postad.O2.options.length=0;
for(i=0;i<arrValori.length;i++)
{
document.postad.O2.options[document.postad.O2.options.length]= new Option(arrValori[i].split("|"));
}
}
}
</script>
-----------------------------------------------------------------------------------
SCRIPT PER POPOLARE COMUNI CHE FUNZIONA SOLO CON OPERA E FIREFOX E NON CON IE
<script language="javascript">
var trova_pro=false;
function trova()
{
var valorecampo = document.postad.O2.options[document.postad.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="+valorecampo,true);
trova_pro.send(null);
// branch for IE/Windows ActiveX version
} else if (window.ActiveXObject) {
trova_pro = new ActiveXObject1("Microsoft.XMLHTTP");
if (trova_pro) {
trova_pro.onreadystatechange = ricezione;
trova_pro.open("GET", "cercacitta.asp?provincia="+valorecampo,true);
trova_pro.send();
}
}
}
function ricezione() {
var strRes;
var arrValori;
if (trova_pro.readyState == 4) {
strRes=trova_pro.responseText;
alert(strRes);
arrValori=strRes.split("|");
document.postad.o3.options.length=0;
for(i=0;i<arrValori.length;i++)
{
document.postad.o3.options[document.postad.o3.options.length]= new Option(arrValori[i].split("|"));
}
}
}
</script>