Originariamente inviato da the darkness
mi togli una curiosità?ma ti sei messo a fare a mano per tutti i comuni???
Io ho un amico che si è prestato molto volentieri a farmelo . Si chiama asp.net

per chi fosse interessanto, invio una pagina ridotta. Nel server si ricava il vettore bidimensionale province e comuni che ho ridotto per spazio a 3.
Il vettore province contiene id_provincia, nome_provincia, id_regione. Il vettore comuni contiene id_comune, nome_comune e id_provincia.
quando si seleziona una regione, si ricava l'id_regione e si recuperano tutte le province per quel id_regione...
codice:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title>Pagina senza titolo </title>
    <link href="../stili/Styles.css" rel="stylesheet" type="text/css" />
    <script language="javascript" type="text/javascript">
// <!CDATA[

var province = [ ["084", "AGRIGENTO", "19"], ["006", "ALESSANDRIA", "01"], ["042", "ANCONA", "11"] ];
var comuni = [ ["28001", "ABANO TERME", "028"], ["98001", "ABBADIA CERRETO", "098"], ["97001", "ABBADIA LARIANA", "097"] ];

function DropDownList_regioni_onchange(v) 
{
    //chiave regione
    var key = v.value;
    
    //cancello tutti le province
    $("DropDownList_province").options.length = 1;
    
    //cancello tutti i comuni
    $("DropDownList_comuni").options.length = 1;
    
    //creo lista provincia
    for(var i in province)
    {
        if(province[i][2] == key)
        {
            lista_push($("DropDownList_province"), province[i][1], province[i][0]);
        }
    }
    
}

function DropDownList_province_onchange(v) 
{
    //chiave provincia
    var key = v.value;
    
    //cancello tutti i comuni
    $("DropDownList_comuni").options.length = 1;
    
    //creo lista comuni
    for(var i in comuni)
    {
        if(comuni[i][2] == key)
        {
            lista_push($("DropDownList_comuni"), comuni[i][1], comuni[i][0]);
        }
    }

}

function DropDownList_comuni_onchange(v)
{

}

//al posto di mettere document.getElementById("div1"), mettere $("div1")
//da prototype.js
function $() 
{
    var elements = new Array();

    for (var i = 0; i < arguments.length; i++) 
    {
        var element = arguments[i];
        if (typeof element == 'string')
            element = document.getElementById(element);

        if (arguments.length == 1)
            return element;

        elements.push(element);
    }

    return elements;
}

function lista_push(lista, testo, valore)
{
	lista.options[lista.options.length] = new Option(testo, valore);
}

// ]]>
    </script>

</head>
<body>
    <form name="form1" method="post" action="a.aspx" id="form1" >
        <table>
            <tr><td>Regioni</td><td>Province</td><td>Comuni</td></tr>
            <tr>
                <td>
                    <select name="DropDownList_regioni" id="DropDownList_regioni" style="width:200px;" onchange="return DropDownList_regioni_onchange(this)">
	                    <option value=""></option>
	                    <option value="13">ABRUZZO</option>
	                    <option value="17">BASILICATA</option>
	                    <option value="18">CALABRIA</option>
	                    <option value="15">CAMPANIA</option>
	                    <option value="08">EMILIA-ROMAGNA</option>
	                    <option value="06">FRIULI-VENEZIA GIULIA</option>
	                    <option value="12">LAZIO</option>
	                    <option value="07">LIGURIA</option>
	                    <option value="03">LOMBARDIA</option>
	                    <option value="11">MARCHE</option>
	                    <option value="14">MOLISE</option>
	                    <option value="01">PIEMONTE</option>
	                    <option value="16">PUGLIA</option>
	                    <option value="20">SARDEGNA</option>
	                    <option value="19">SICILIA</option>
	                    <option value="09">TOSCANA</option>
	                    <option value="04">TRENTINO-ALTO ADIGE</option>
	                    <option value="10">UMBRIA</option>
	                    <option value="02">VALLE D'AOSTA</option>
	                    <option value="05">VENETO</option>
                    </select>
                
                </td>
                <td>
                    <select name="DropDownList_province" id="DropDownList_province" style="width:200px;" onchange="return DropDownList_province_onchange(this)">
	                    <option value=""></option>
                    </select>
                
                </td>
                <td>
                    <select name="DropDownList_comuni" id="DropDownList_comuni" style="width:200px;" onchange="return DropDownList_comuni_onchange(this)">
	                    <option value=""></option>
                    </select>
                
                </td>
            </tr>
        </table>
    </form>
</body>
</html>