Torno a rompervi le scatole... Su internet ho trovato alcuni script che permettono di selezionare regione e provincia tramite select dinamici, ma nessuno che permetta di selezionare anche i comuni e che all'occorenza renda invisibili i select... così ho provato a crearne io uno da 0. Il codice è questo:
codice:
<html>
<head>
<style type="text/css">
#city{
display:none;
}
#country{
display:none;
}
</style>
</head>
<body>
<script language="javascript">
function regioni(s)
{
var city=document.getElementById("city");
sel_city=document.forms['test'].cities.options;
if (s.options[s.selectedIndex].selected)
{
city.style.display="inline";
}
if (s.options[s.selectedIndex].value=="Sicilia")
{
sel_city[0] = new Option("Catania","Catania");
sel_city[1] = new Option("Palermo","Palermo");
if (sel_city[sel_city.selectedIndex].value=="Catania")
{
country.style.display="none";
}
}
else if (s.options[s.selectedIndex].value=="Calabria")
{
sel_city[0] = new Option("Reggio Calabria","Reggio Calabria");
sel_city[1] = new Option("Crotone","Crotone");
if (sel_city[sel_city.selectedIndex].value=="Reggio Calabria")
{
country.style.display="none";
}
}
}
function citta(s)
{
var country=document.getElementById("country");
sel_country=document.forms['test'].countries.options;
if (s.options[s.selectedIndex].selected)
{
country.style.display="inline";
}
if (s.options[s.selectedIndex].value=="Catania")
{
sel_country[0] = new Option("Ragalna","Ragalna");
sel_country[1] = new Option("Paternò","Paternò");
}
else if (s.options[s.selectedIndex].value=="Palermo")
{
sel_country[0] = new Option("Bagheria","Bagheria");
sel_country[1] = new Option("Monreale","Monreale");
}
else if (s.options[s.selectedIndex].value=="Reggio Calabria")
{
sel_country[0] = new Option("Riace","Riace");
sel_country[1] = new Option("Serrata","Serrata");
}
else if (s.options[s.selectedIndex].value=="Crotone")
{
sel_country[0] = new Option("Cutro","Cutro");
sel_country[1] = new Option("Melissa","Melissa");
}
}
</script>
<form name="test" method="post">
<select onChange="regioni(this)">
<option value="Sicilia">Sicilia</option>
<option value="Calabria">Calabria</option>
</select>
<select name="cities" id="city" onChange="citta(this)">
</select>
<select name="countries" id="country">
</select>
</form>
</body>
</html>
Funziona benissimo (tralasciando il fatto che molto probabilmente è scritto male), tranne per un piccolo particolare... le funzioni vengono eseguiti tramite onChange, quindi se non viene cambiata regione o città, non mostra il select successivo e per farlo bisogna prima selezionare un'altra regione e poi tarnare a quella di partenza. Ad esempio... se io volessi mostrare le province siciliane, dovrei prima selezionare la Calabria e poi tornare alla Sicilia.
Io invece vorrei che fosse possibile selezionare la regione di partenza senza doverla cambiare... ho provato con onClick, ma così facendo, ogni volta che si apre la finestra delle regioni, si azzera tutto.
Come possi sistemarlo?