Newsgroup: it.comp.lang.javascript
Titolo: Problemi con javascript

salve a tutti;
avrei un paio di problemi da porre, il primo riguarda un sistema di
<SELECT> per la selezione delle provincie in base alle regioni.. il
tutto funzia con 2 array (uno con i valori delle provincie un per i
rispettivi valori da quest'utlimi).. in pratica ho questo codice
nell'header del DOC :
<SCRIPT>
<!--
var prov=new Array();
	prov[1]=new Array("Seleziona Provincia>",
"Cuneo","Allessandria","Asti","Novara","Torino", "Vercelli",
"Biella");
	prov[2]=new Array("Seleziona Provincia>", "Aosta");
	prov[3]=new Array("Seleziona Provincia>",
"Bergamo","Brescia","Como","Cremona","Mantova", "Milano", "Sondrio",
"Pavia", "Varese");
	prov[4]=new Array("Seleziona Provincia>", "Bolzano","Trento");
	prov[5]=new Array("Seleziona Provincia>",
"Belluno","Padova","Rovigo","Treviso","Venezia", "Verona", "Vicenza");
	prov[6]=new Array("Seleziona Provincia>",
"Gorizia","Pordenone","Trieste","Udine");
	prov[7]=new Array("Seleziona Provincia>", "Genova","Imperia","La
Spezia","Savona");
        prov[8]=new Array("Seleziona Provincia>",
"Bologna","Ferrara","Forlě","Modena","Parma", "Piacenza", "Reggio
Emilia", "Rimini", "Ravenna");
        prov[9]=new Array("Seleziona Provincia>",
"Arezzo","Firenze","Grosseto","Livorno","Lucca", "Massa Carrara",
"Pisa", "Pistoia", "Siena");
        prov[10]=new Array("Seleziona Provincia>","Perugia", "Terni");
        prov[11]=new Array("Seleziona Provincia>", "Ascoli
Piceno","Macerata","Ancona","Pesaro Urbino");
        prov[12]=new Array("Seleziona Provincia>",
"Frosinone","Latina","Rieti","Roma","Viterbo");
        prov[13]=new Array("Seleziona Provincia>",
"Chieti","L'Aquila","Pescara","Teramo");
        prov[14]=new Array("Seleziona Provincia>",
"Campobasso","Isernia");
        prov[15]=new Array("Seleziona Provincia>", "Avellino",
"Benevento", "Caserta", "Napoli", "Salerno");
        prov[16]=new Array("Seleziona Provincia>",
"Bari","Brindisi","Foggia","Lecce", "Taranto");
        prov[17]=new Array("Seleziona Provincia>",
"Matera","Potenza");
        prov[18]=new Array("Seleziona Provincia>",
"Catanzaro","Cosenza","Reggio Calabria");
        prov[19]=new Array("Seleziona Provincia>",
"Agrigento","Caltanissetta", "Enna", "Palermo", "Messina", "Ragusa",
"Siragusa", "Trapani");
        prov[20]=new Array("Seleziona Provincia>",
"Cagliari","Nuoro","Sassari","Oristano");
var sigle=new Array()
	sigle[1]=new Array("0", "53","54","55","56","57");
	sigle[2]=new Array("0", "90");
	sigle[3]=new Array("0", "42","43","44","45", "46", "47", "48", "49",
"50")
	sigle[4]=new Array("0", "86","87")
	sigle[5]=new Array("0", "91","92","93","94","95", "96", "97");
	sigle[6]=new Array("0", "29","30","31","32");
	sigle[7]=new Array("0", "38","39","40","41");
	sigle[8]=new Array("0", "20","21","22","23","24", "25", "26", "27",
"28");
	sigle[9]=new Array("0", "77","78","79","80","81", "82", "83", "84",
"85");
	sigle[10]=new Array("0", "88","89");
        sigle[11]=new Array("0", "2","3","4","5");
	sigle[12]=new Array("0", "33","34","35","36", "37");
	sigle[13]=new Array("0", "6","7","8","9");
	sigle[14]=new Array("0", "51","52");
	sigle[15]=new Array("0", "15","16","17","18","19");
	sigle[16]=new Array("0", "59","60", "61", "62", "63");
        sigle[17]=new Array("0", "10","11");
      	sigle[18]=new Array("0", "12","13", "14");
	sigle[19]=new Array("0", "68","69","70","71","72", "73", "74", "75",
"76");
	sigle[20]=new Array("0", "64","65", "66", "67");
function Riempi(source)
	{
	with (document.modulo.provincia)
		{
		while (options.length > 0)
			options[0]=null;
		for (i=0;i<prov[source].length;i++)
			options[i]=new Option(prov[source][i],sigle[source][i])
 
		}
	}
//-->
</SCRIPT>
e richiamo la funzione Riempi() nel body cosě:
<select name="regione" class="grigiofino"
onChange="Riempi(this.options.selectedIndex)">
                            <option value="0">Seleziona la
regione></option>
                            <option value="1">Piemonte</option>
                            <option value="2">Valle d'Aosta</option>
                            <option value="3">Lombardia</option>
                            <option value="4">Trentino Alto
Adige</option>
                            <option value="5">Veneto </option>
                            <option value="6"> Friuli Venezia Giulia
</option>
                            <option value="7">Liguria</option>
                            <option value="8">Emilia Romagna </option>
                            <option value="9">Toscana</option>
                            <option value="10"> Umbria </option>
                            <option value="11">Marche</option>
                            <option value="12">Lazio</option>
                            <option value="14">Abruzzo</option>
                            <option value="15"> Molise</option>
                            <option value="16">Campania</option>
                            <option value="17">Puglia </option>
                            <option value="18">Basilicata </option>
                            <option value="19">Calabria </option>
                            <option value="20">Sicilia </option>
                            <option value="21">Sardegna</option>
                          </select>
                        </td>
                        <td height="24" valign="top"
bgcolor="#FFFFCC">
                          <select name="provincia" class="grigiofino">
                            <option value="0">Seleziona
provincia&gt;</option>
Il mio problema č che ho due gruppi di questo tipo, entrambi nella
Homepage, quando seleziono la regione del secondo gruppo di <SELECT>
mi appaiono i valori nel primo gruppo di <SELECT> (il quale appare
prima in ordine di visualizzazione) invece io vorrei vedere le
relative provincie apparire nel secondo gruppo di <SELECT>.
Non sň se mi sono spiegato bene, spero perň che qualcuno mi possa
aiutare.
Grazie in anticipo.
saluti,
Augusto

 relative provincie apparire nel secondo gruppo di <SELECT>.
il problema e' che anche se metti due gruppi di select, la funzione Riempi
fa riferimento solo ad un ben preciso SELECT di nome "provincia". Se vuoi
che la cosa funzioni con piu' SELECT indipendent, devi
1) passare il nome della SELECT alla funzione
2) dare un nome diverso alle SELECT
modifica la funzione Riempi in questo modo:
function Riempi(what, source)
{
with (document.modulo.elements[what])
{
while (options.length > 0)
options[0]=null;
for (i=0;i<prov[source].length;i++)
options[i]=new Option(prov[source][i],sigle[source][i])
}
}
e chiamala cosi':
<select name="regione1" class="grigiofino"
onChange="Riempi('regione1', this.options.selectedIndex)">
<select name="regione2" class="grigiofino"
onChange="Riempi('regione2', this.options.selectedIndex)">
HTH
--
artemis.alpeia
http://spazioinwind.libero.it/artemis

...

Ciao Artemis,
grazie per l'aiuto, hai ragione potrei risolvere il problema chiamando
le diverse select con nomi diversi.. ma sarebbe possibile influenzare
la <SELECT> provincie (ce ne sono due) a seconda della <SELECT>
regione scelta..
Insomma una cosa del tipo 
(scusami ma non sò programmare in javascript ma ci provo per darti
un'idea) :
if (document.modulo.regione[2]) {  //Se hai scelto la seconda <SELECT>
regione
  //Influenza la prima <SELECT> provincie 
}else {
  //Influenza la seconda <SELECT> provincie
}
Il fatto è che ho la necessità di lasciare invariati i nomi delle
select perchè entrambe si riferiscono allo stesso script PHP che
controlla appunto le variabili $regione e $provincie.
Grazie in anticipo,
Augusto

 controlla appunto le variabili $regione e $provincie.
no, non puoi fare una cosa simile. I nomi degli elementi devono essere unici
all'interno dello stesso form. Tuttavia, puoi creare due form diversi,
entrambi con la stessa action che punta allo script PHP. E allora, in tal
caso, la funzione Riempi deve ottenere come parametro il nome del form:
<form name="modulo1" action="./quello_che_vuoi.php">
<select name="regione" onChange="Riempi('modulo1',
this.options.selectedIndex);">
...
</select>
...
</form>
<form name="modulo2" action="./quello_che_vuoi.php">
<select name="regione" onChange="Riempi('modulo2',
this.options.selectedIndex);">
...
</select>
...
</form>
<script type="text/javascript">
<!--
function Riempi(frm, source)
{
with (document.forms[frm].elements['provincia'])
{
while (options.length > 0)
options[0]=null;
for (i=0;i<prov[source].length;i++)
options[i]=new Option(prov[source][i],sigle[source][i])
}
}
//-->
</script>
--
artemis.alpeia
http://spazioinwind.libero.it/artemis