Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2002
    Messaggi
    65

    Menù a tendina, il secondo dinamico...

    Ciao a tutti, ho un grosso problema che non riesco a risolvere dal momento che non conosco assolutamente javascript.
    Ho due menù a tendina, il primo prende i dati da un db mysql e rimane fisso, mentre il secondo dovrebbe cambiare contenuto a seconda di cosa è stato selezionato nel primo.
    Questo l'ho già fatto in php ma ha il difetto di ricaricare la pagina.
    C'è un modo per far cambiare il secondo menù senza dover caricare la pagina?

    Grazie in anticipo a tutti

  2. #2
    Utente di HTML.it
    Registrato dal
    Dec 2001
    Messaggi
    3,259
    appena finito di fare...


    <script>
    function dennis(selezionata){
    ar_uno=new Array()
    ar_due=new Array()
    ar_tre=new Array()
    ar_uno[0]=new Option('uno1','uno1')
    ar_uno[1]=new Option('uno2','uno2')
    ar_uno[2]=new Option('uno3','uno3')

    ar_due[0]=new Option('due1','due1')
    ar_due[1]=new Option('due2','due2')
    ar_due[2]=new Option('due3','due3')

    ar_tre[0]=new Option('tre1','tre1')
    ar_tre[1]=new Option('tre2','tre2')
    ar_tre[2]=new Option('tre3','tre3')

    if(selezionata=="uno")array_rif=ar_uno
    if(selezionata=="due")array_rif=ar_due
    if(selezionata=="tre")array_rif=ar_tre
    for(i=0;i<array_rif.length;i++){
    document.form1.seconda.options[i]=array_rif[i]
    }
    }
    </script>
    <form name="form1">
    <select name="prima" onChange="dennis(this[this.selectedIndex].value)">
    <option value="uno">UNO</option>
    <option value="due">DUE</option>
    <option value="tre">TRE</option>
    </select>
    <select name="seconda">
    <option value="uno1">uno1</option>
    <option value="uno2">uno2</option>
    <option value="uno3">uno3</option>


    ti piace?

  3. #3
    Utente di HTML.it
    Registrato dal
    Nov 2002
    Messaggi
    65
    Grande, era proprio quello che cercavo e con un codice molto pulito, complimenti.
    Ora però ho un problema: in alcune voci del menù utilizzo delle virgole, ma allo script danno fastidio, come posso fare a mettere le virgole in modo da far funzionare lo script?

    Grazie

  4. #4
    Utente di HTML.it
    Registrato dal
    Dec 2001
    Messaggi
    3,259
    il fagianissimo dennis ha colpito


    ho preso il vizio ad usare gli apici singoli... quindi...

    cmq con questo usi quante virgole vuoi :-)

    codice:
    <script>
    function dennis(selezionata){
    ar_uno=new Array()
    ar_due=new Array()
    ar_tre=new Array()
    ar_uno[0]=new Option("1,41","1,41")
    ar_uno[1]=new Option("1,42","1,42")
    ar_uno[2]=new Option("1,43","1,43")
    
    ar_due[0]=new Option("1,51","1,51")
    ar_due[1]=new Option("1,52","1,52")
    ar_due[2]=new Option("1,53","1,53")
    
    ar_tre[0]=new Option("1,61","1,61")
    ar_tre[1]=new Option("1,62","1,62")
    ar_tre[2]=new Option("1,63","1,63")
    
    if(selezionata=="1,4")array_rif=ar_uno
    if(selezionata=="1,5")array_rif=ar_due
    if(selezionata=="1,6")array_rif=ar_tre
    for(i=0;i<array_rif.length;i++){
    document.form1.seconda.options[i]=array_rif[i]
    }
    }
    </script>
    <form name="form1">
    <select name="prima" onChange="dennis(this[this.selectedIndex].value)">
    <option value="1,4">1,4</option>
    <option value="1,5">1,5</option>
    <option value="1,6">1,6</option>
    </select>
    <select name="seconda">
    <option value="1,41">1,41</option>
    <option value="1,42">1,42</option>
    <option value="1,43">1,42</option>
    </select>

  5. #5
    Utente di HTML.it
    Registrato dal
    Dec 2001
    Messaggi
    3,259
    lo script postato in precedenza funzionava solo con array di lunghezza identica. Con una piccola modifica ovviamo...
    codice:
    <script>
    function dennis(selezionata){
    ar_uno=new Array()
    ar_due=new Array()
    ar_tre=new Array()
    ar_uno[0]=new Option("1,41","1,41")
    ar_uno[1]=new Option("1,42","1,42")
    ar_uno[2]=new Option("1,43","1,43")
    
    ar_due[0]=new Option("1,51","1,51")
    ar_due[1]=new Option("1,52","1,52")
    ar_due[2]=new Option("1,53","1,53")
    
    ar_tre[0]=new Option("1,61","1,61")
    ar_tre[1]=new Option("1,62","1,62")
    ar_tre[2]=new Option("1,63","1,63")
    
    if(selezionata=="1,4")array_rif=ar_uno
    if(selezionata=="1,5")array_rif=ar_due
    if(selezionata=="1,6")array_rif=ar_tre
    document.form1.seconda.options.length=0
    for(i=0;i<array_rif.length;i++){
    document.form1.seconda.options[i]=array_rif[i]
    }
    }
    </script>
    <form name="form1">
    <select name="prima" onChange="dennis(this[this.selectedIndex].value)">
    <option value="1,4">1,4</option>
    <option value="1,5">1,5</option>
    <option value="1,6">1,6</option>
    </select>
    <select name="seconda">
    <option value="1,41">1,41</option>
    <option value="1,42">1,42</option>
    <option value="1,43">1,42</option>
    </select>
    per l'amico che mi ha contattato in privato:
    nel tuo caso puoi sostituire tutta la parte degli if
    (per intenderci quella che fa if(selezionata=="1,4")array_rif=ar_uno ecc...)

    togli tutti quei controlli e metti questo:

    array_rif=eval("ar_"+selezionata)


    così alleggerisci almeno in parte lo script...


  6. #6
    Utente di HTML.it
    Registrato dal
    Nov 2002
    Messaggi
    65
    Originariamente inviato da Dennis

    per l'amico che mi ha contattato in privato:
    nel tuo caso puoi sostituire tutta la parte degli if
    (per intenderci quella che fa if(selezionata=="1,4")array_rif=ar_uno ecc...)

    togli tutti quei controlli e metti questo:

    array_rif=eval("ar_"+selezionata)


    così alleggerisci almeno in parte lo script...

    Grazie mille, funziona alla perfezione :metallica :metallica

  7. #7
    Utente di HTML.it
    Registrato dal
    Dec 2001
    Messaggi
    3,259
    Originariamente inviato da Havatar
    Grazie mille, funziona alla perfezione :metallica :metallica
    sono contento :-)

    alla prossima!


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.