Visualizzazione dei risultati da 1 a 4 su 4

Discussione: onchenge popola

  1. #1

    onchenge popola

    Ciao a tutti sto usando questo script per popolare una select all' ONchange di un'altra select il tutto funziona ho solo un problema che non riesco a risolvere

    In pratica queste due select contegono una gli stati e l'altra le citta relative allo stato selezionato il problema sorge quando seleziono prima uno stao con quattro elementi(citta) lui mi popola tranquillamente la select poi se cambio e passo ad uno stato con tre elementi(citta) lui mi mete i primi tre elementi dello stato nuovo e mi lascia come quarto elemento quello dello stato vecchio in sostanza non svuota le option che aveva precedentemente popolato ho provato in vari modi ma non riesco a svuotare la seconda select
    qui sotto trovato la funzione
    codice:
    <script type="text/javascript">
    function enzo(selezionata){
    ar_1=new Array();
     if(selezionata=="ITALIA"){
       <%SQL="Select citta from  citta where nazione='Italia' "
         Set rs=Conn.Execute(SQL)
         i=0
          Do while Not rs.eof%>
    ar_1[<%=i%>]=new Option('<%=rs("citta")%>','<%=rs("citta")%>');
    	<%i=i+1
    	rs.movenext
    	loop%>
    	array_rif=ar_1;
    	}
    	if(selezionata=="FRANCIA"){
    	<%SQL="Select citta from  citta where nazione='Francia' "
    	Set rs=Conn.Execute(SQL)
    	i=0
    	Do while Not rs.eof%>
    ar_1[<%=i%>]=new Option('<%=rs("citta")%>','<%=rs("citta")%>');
    	<%i=i+1
    	rs.movenext
    	loop%>
    	array_rif=ar_1;
    	}
    	for(i=0;i<array_rif.length;i++)document.casa_vacanze.citta.options[i]=array_rif[i];
    }
    </script>
    che richiamo cosi :

    codice:
    <select  onChange="enzo(this[this.selectedIndex].value);" name="stato"> 
                          <option value=""></option> 
                          <option value="AUSTRALIA">AUSTRALIA</option> 
                          <option value="AUSTRIA">AUSTRIA</option> 
                          <option value="BELGIO">BELGIO</option> 
                          <option value="CANADA">CANADA</option> 
                          <option value="FRANCIA">FRANCIA</option> 
    					  <option value="GALLES">GALLES</option>
                          <option value="GERMANIA">GERMANIA</option> 
                          <option value="INGHILTERRA">INGHILTERRA</option> 
                          <option value="IRLANDA">IRLANDA</option> 
                          <option value="ITALIA">ITALIA</option> 
                          <option value="LUSSEMBURGO">LUSSEMBURGO</option> 
                          <option value="NUOVA ZELANDA">NUOVA ZELANDA</option> 
                          <option value="NORVEGIA">NORVEGIA</option> 
                          <option value="OLANDA">OLANDA</option> 
                          <option value="STATI UNITI">STATI UNITI</option> 
                          <option value="SCOZIA">SCOZIA</option> 
                          <option value="SPAGNA">SPAGNA</option> 
                  		  <option value="SVEZIA">SVEZIA</option> 
                          <option value="SVIZZERA">SVIZZERA</option> 
                        </select>
    spero di essere stato abastanza chiaro
    grazie a tutti

  2. #2
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    In questo forum si trattano gli script lato client... devi postare il codice che riceve il browser, non la parte in ASP che qui non tutti masticano...

    ciao
    Il guaio per i poveri computers e' che sono gli uomini a comandarli.

    Attenzione ai titoli delle discussioni: (ri)leggete il regolamento
    Consultate la discussione in rilievo: script / discussioni utili
    Usate la funzione di Ricerca del Forum

  3. #3
    la parte asp non fa altro che prendere i dati da un db e popolare l'array che pero e in javascript cmq ora posto il risultato dell html
    codice:
    <script type="text/javascript">
    function enzo(selezionata){
    	ar_1=new Array();
    	if(selezionata=="ITALIA"){
    	
    	ar_1[0]=new Option('Napoli','Napoli');
    	
    	ar_1[1]=new Option('Milano','Milano');
    	
    	ar_1[2]=new Option('Roma','Roma');
    	
    	ar_1[3]=new Option('Palermo','Palermo');
    	
    	array_rif=ar_1;
    	}
    	if(selezionata=="FRANCIA"){
    	
    	ar_1[0]=new Option('Parigi','Parigi');
    	
    	ar_1[1]=new Option('Cannes','Cannes');
    	
    	ar_1[2]=new Option('Montpellier','Montpellier');
    	
    	array_rif=ar_1;
    	}
    	for(i=0;i<array_rif.length;i++)document.casa_vacanze.citta.options[i]=array_rif[i];
    }
    </script>
    la selct e sempre la stessa il problema sta se seleziono italia lui mi popola la select co le quattro citta(Napoli,Milano,Roma,Palermo) se poi cambio e seleziono francia lui mi popola La select con le tre citta francesi(Parigi,Cannes,Montpellier) e poi mi mette (Palermo)
    quello che dovrei evitare e che mi popoli anche con palermo che non fa parte della Franzia spero che cosi possa essere piu di aiuto
    Grazie ancora

  4. #4
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    Aggiungi la riga in rosso:

    ...
    document.casa_vacanze.citta.length=0;
    for(i=0;i<array_rif.length;i++)document.casa_vacan ze.citta.options[i]=array_rif[i];

    ciao
    Il guaio per i poveri computers e' che sono gli uomini a comandarli.

    Attenzione ai titoli delle discussioni: (ri)leggete il regolamento
    Consultate la discussione in rilievo: script / discussioni utili
    Usate la funzione di Ricerca del Forum

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.