Visualizzazione dei risultati da 1 a 8 su 8

Discussione: [JS] Select dinamica.

  1. #1
    Utente bannato
    Registrato dal
    Aug 2001
    Messaggi
    696

    [JS] Select dinamica.

    Probabilmente per voi è una bischerata incredibile.
    Vorrei realizzare due select.
    La seconda deve cambiare in base alla prima.
    Esempio.

    Valori della prima select.
    film
    telefilm

    Valori seconda select se la prima è film
    matrix
    biancaneve

    Valori seconda select se la prima è telefilm
    happy days
    streghe

    Come posso fare?
    Grazie

  2. #2
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Vale anche per i moderatori: prima di postare una bella ricerca nel forum non fa male.

    L'argomento e` stato affrontato piu` volte, e ci sono dei bei thread in questo forum. Altrimenti puoi vedere gli esempi che trovi nel sito della Netscape alla voce form > select.

    Ciao
    Michele
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  3. #3
    Utente bannato
    Registrato dal
    Aug 2001
    Messaggi
    696
    Se avevo capito quello che ho trovato con la ricerca non chiedevo.
    Ho chiesto un esempio con due sole opzioni perchè con molte opzioni mi perdo e non riesco a capire il funzionamento.

    Probabilmente sono tardo io ma non ci posso fare niente.

    Grazie per il link ora ci riprovo.
    Spero di riuscire a risolvere.

  4. #4
    Utente di HTML.it L'avatar di willybit
    Registrato dal
    May 2001
    Messaggi
    4,367
    Salve gente,

    ti posso fare io un esempio semplice semplice con solo un livello di dipendenza
    codice:
    <HTML>
    <HEAD>
    <script language="javascript">
    	function elemento(valore,testo,padre){
    		this.valore=valore
    		this.testo=testo
    		this.padre=padre
    	}
    	
    	var opzioni = new Array()
    	opzioni[opzioni.length]=new elemento('cat1','film',null)
    	opzioni[opzioni.length]=new elemento('cat2','telefilm',null)
    
    	opzioni[opzioni.length]=new elemento('film1','matrix','cat1')
    	opzioni[opzioni.length]=new elemento('film2','biancaneve','cat1')
    	opzioni[opzioni.length]=new elemento('film3','pulp fiction','cat1')
    	opzioni[opzioni.length]=new elemento('film4','pinocchio','cat1')
    	opzioni[opzioni.length]=new elemento('film5','trainspotting','cat1')
    
    	opzioni[opzioni.length]=new elemento('tfilm1','heppy days','cat2')
    	opzioni[opzioni.length]=new elemento('tfilm2','streghe','cat2')
    	opzioni[opzioni.length]=new elemento('tfilm3','8 sotto un tetto','cat2')
    	opzioni[opzioni.length]=new elemento('tfilm4','arnold','cat2')
    	
    	
    	function svuotaSelect(ss){
    		nn = ss.length
    		for(i=nn; i>=0; i--)
    			ss[i]=null;
    	}
    	
    	function VisPrimaSelect(){
    		prima = document.forms[0].primaSelect.options
    		svuotaSelect(prima)
    		for(i=0;i<opzioni.length;i++)
    			if(!opzioni[i].padre)
    				prima[prima.length]=new Option(opzioni[i].testo,opzioni[i].valore)
    	}
    	
    	function VisSecondaSelect(){
    		seconda = document.forms[0].secondaSelect.options
    		svuotaSelect(seconda)
    		pp = document.forms[0].primaSelect
    		valorePrima = pp.options[pp.selectedIndex].value
    
    		for(i=0;i<opzioni.length;i++)
    			if(opzioni[i].padre==valorePrima)
    				seconda[seconda.length]=new Option(opzioni[i].testo,opzioni[i].valore)
    	}
    	
    </script>
    
    <TITLE>Select dipendenti</TITLE>
    </HEAD>
    <BODY onload="VisPrimaSelect();VisSecondaSelect()">
    <form>
    	<select name="primaSelect" onchange="VisSecondaSelect();">
    	</select>
    	
    
    	<select name="secondaSelect" multiple size="5">
    	</select>
    </form>
    </BODY>
    </HTML>
    dovrebbe essere abbastanza chiaro il codice... se hai bisogno di chiarimenti chiedi pure
    Aloha

  5. #5

    Aggiuntina..

    Ciao,
    cercando qualche cosa al proposito ho trovato questo script che fà esattamente al caso mio!! Ed è perfettamente funzionanate , grazie molte!
    Se posso però vorrei chiedervi se è possibile integrarlo ad esempio potendo scegliere l'opzione da selezionare di default in entrambe le select... (..opzioni prese magari da un db..:adhone
    Grazie molte, ciao

  6. #6
    Utente di HTML.it L'avatar di willybit
    Registrato dal
    May 2001
    Messaggi
    4,367
    Ciao Leo the Wings,

    se vuoi ti faccio la modifica per i valori di default... però per itegrarlo lato server ci devi pensare tu
    codice:
    <HTML>
    <HEAD>
    <script language="javascript">
    	function elemento(valore,testo,padre,selezionato){
    		this.valore=valore
    		this.testo=testo
    		this.padre=padre
    		this.selezionato=selezionato
    	}
    	
    	var opzioni = new Array()
    	opzioni[opzioni.length]=new elemento('cat1','film',null)
    	opzioni[opzioni.length]=new elemento('cat2','telefilm',null,true)
    
    	opzioni[opzioni.length]=new elemento('film1','matrix','cat1')
    	opzioni[opzioni.length]=new elemento('film2','biancaneve','cat1')
    	opzioni[opzioni.length]=new elemento('film3','pulp fiction','cat1')
    	opzioni[opzioni.length]=new elemento('film4','pinocchio','cat1')
    	opzioni[opzioni.length]=new  elemento('film5','trainspotting','cat1',true)
    
    
    	opzioni[opzioni.length]=new elemento('tfilm1','heppy days','cat2')
    	opzioni[opzioni.length]=new elemento('tfilm2','streghe','cat2')
    	opzioni[opzioni.length]=new elemento('tfilm3','8 sotto un tetto','cat2')
    	opzioni[opzioni.length]=new elemento('tfilm4','arnold','cat2',true)
    	
    	
    	function svuotaSelect(ss){
    		nn = ss.length
    		for(i=nn; i>=0; i--)
    			ss[i]=null;
    	}
    	
    	function VisPrimaSelect(){
    		prima = document.forms[0].primaSelect.options
    		svuotaSelect(prima)
    		for(i=0;i<opzioni.length;i++)
    			if(!opzioni[i].padre){
    				prima[prima.length]=new Option(opzioni[i].testo,opzioni[i].valore)
    				if(opzioni[i].selezionato)prima[prima.length-1].selected=true
    			}
    	}
    	
    	function VisSecondaSelect(){
    		seconda = document.forms[0].secondaSelect.options
    		svuotaSelect(seconda)
    		pp = document.forms[0].primaSelect
    		valorePrima = pp.options[pp.selectedIndex].value
    
    		for(i=0;i<opzioni.length;i++)
    			if(opzioni[i].padre==valorePrima){
    				seconda[seconda.length]=new Option(opzioni[i].testo,opzioni[i].valore)
    				if(opzioni[i].selezionato)seconda[seconda.length-1].selected=true
    			}
    	}
    	
    </script>
    
    <TITLE>Select dipendenti</TITLE>
    </HEAD>
    <BODY onload="VisPrimaSelect();VisSecondaSelect()">
    <form>
    	<select name="primaSelect" onchange="VisSecondaSelect();">
    	</select>
    	
    
    	<select name="secondaSelect" multiple size="5">
    	</select>
    </form>
    </BODY>
    </HTML>
    praticamente ho solo aggiunto la proprietà selezionato all'oggettino elemento... nell'esempio ho messo di default nella prima combo l'opzione telefilm... per l'altra combo ho messo per i film trainspotting e per i telefilm arnold
    Aloha

  7. #7

    Grande..

    Grazie Willybit, sai che era pressochè quello che avevo supposto?
    Ora il lato server lo curo io..
    e grazie di nuovo!!

  8. #8

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.