Ecco cosa deve arrivare al browser.
Nota che nel vettore local ci sono le virgolette attorno ai nomi, nella matrice dist ci sono numeri (senza virgolette) che rappresentano le distanze tra i vari posti. Dove ho messo due lettere uguali, ci metterai 0 (zero). Per comodita` la matrice e` doppia: cioe` il numero AB sara` lo stesso di BA (se la strada ad andare e` uguale a ritornare).
Naturalmente ci dovra` essere un programma sul server che genera questa matrice, prendendo i dati dal database.
codice:
<script type="text/javascript">
var local = new Array("Aosta", "Bari", "Como", "D..", ...);
var dist = new Array();
dist[0] = new Array(AA, AB, AC, AD, ...);
dist[1] = new Array(BA, BB, BC, ...);
...
dist[14] = new Array(...);
function riempi() {
// codice per copiare le localita` nelle due select
}
function calcola(ff) {
var p = ff.part.selectedIndex;
var a = ff.arr.selectedIndex;
ff.km.value = dist[p][a];
}
</script>
</head>
<body onload="riempi();">
...
<form ...>
<select name="part" onchange="calcola(this.form);">
<option> </option>
</select>
<select name="arr" onchange="calcola(this.form);">
<option> </option>
</select>
<input type="text" name="km" readonly="true">
</form>