Visualizzazione dei risultati da 1 a 5 su 5

Discussione: select dinamica

  1. #1

    select dinamica

    ciao a tutti
    ho un problema, aiutooooo!!!
    ho trovato qui http://forum.html.it/forum/showthrea...hreadid=597948 la risposta al mio problema di popolare dinamicamente una select di un form a seconda della scelta fatta in quella precedente.
    Bene, nel mio caso lo script fa questo, scelgo un articolo dalla prima lista e nella seconda mi si "caricano" i formati relativi ad ogni item della prima.
    Il mio problema sta nel fatto che vorrei inserire una terza select sempre legata alla prima, e non ci riesco...
    penso sia banale

    Help meeee
    posto il codice
    grazieee!!

    <html>
    <head>
    <title>Dynamic Select Example</title>

    <script type="text/javascript">
    // creo array contenente i formati dei prodotti
    var arrDigitale, arrVisita, arrLettera, arrVolantini , arrLocandine, arrMenu, arrAltro//, arrVisitac, arrLetterac, arrVolantinic , arrLocandinec, arrMenuc, arrAltroc
    arrVisita = ["85x55 (card)", "90x50", "95x55", "100x60"]
    arrLettera = ["uni A4 (210x297)"]
    arrVolantini = ["uni A5 (145x210)", "uni A4 (210x297) 2 ante", "uni A4 (210x297) 3 ante", "uni A3 (420x297) 2 ante", "uni A3 (420x297) 4 ante"]
    arrLocandine = ["uni A4", "uni A3"]
    arrMenu = ["???"]
    arrAltro = []

    arrDigitale =[arrVisita, arrLettera, arrVolantini, arrLocandine, arrMenu, arrAltro]

    // Funzione per alterare dinamicamente il contenuto del listbox formato
    function handleChange(newDisplay)
    { var ArticoliSelect, FormatoSelect, CartaSelect, NumEntries, i
    ArticoliSelect = document.frm.Articoli
    FormatoSelect = document.frm.Formato

    // Delete all entries in formato list box
    for (i = FormatoSelect.length; i > 0; i--)
    {
    FormatoSelect.options[i-1] = null
    }

    // Add comment option to formato List box
    FormatoSelect.options[0] = new Option("-- Seleziona il formato --",0)

    // If articolo is selected add its formato to the formato List box
    if (newDisplay >= 0)
    {
    NumEntries = arrDigitale[newDisplay].length
    for (i = 1; i <= NumEntries; i++)
    {
    FormatoSelect.options[i] = new Option((arrDigitale[newDisplay])[i-1],(i))
    }
    }
    FormatoSelect.selectedIndex = 0

    }

    </script>
    </head>

    <body>


    Form digitale piccolo formato</p>


    </p>
    <form name="frm" action="">
    articoli:
    <select name="Articoli" onChange="handleChange(this[this.selectedIndex].value)">
    <option value="-1">-- Seleziona articolo --
    <option value="0">Biglietti da visita
    <option value="1">Fogli lettera
    <option value="2">Volantini/Depliant
    <option value="3">Locandine
    <option value="4">Menu
    <option value="5">Altro
    </select>


    formato:
    <select name="Formato">
    <option value="-1">
    <option>
    <option>
    <option>
    <option>
    <option>
    </select>
    //anche questo menu dovrebbe caricare dati relazionati alla scelta fatta nel primo


    carta:
    <select name="Carta">
    <option value="-1">
    <option>
    <option>
    <option>
    <option>
    <option>
    </select>

    <script type="text/javascript">
    handleChange(-1)
    </script>
    </form>
    </body>
    </html>

  2. #2
    non sono un cranio, ma non ti basterebbe modificare la funzione che ti gestisce la select formato aggiungendo del codice (identico praticamente) per gestire la select carta?

  3. #3
    e' quello che sto provando a fare, ma nn funziona, nn sono proprio un esperto...

  4. #4

    risolto ma ce dell'altro!!!

    ho risolto grazie, ora funziona con due select.

    Ho un altro problema pero':

    non mi nanda il value del primo select!!!!!!!!


    ora il codice e cosi un po modificato:

    <script type="text/javascript">
    // creo array contenente i formati dei prodotti
    var arrDigitale, arrCarta, arrVisita, arrLettera, arrVolantini , arrLocandine, arrMenu, arrAltro, arrVisitac, arrLetterac, arrVolantinic , arrLocandinec, arrMenuc, arrAltroc

    arrVisita = ["85x55 (card)", "90x50", "95x55", "100x60"]
    arrLettera = ["uni A4 (210x297)"]
    arrVolantini = ["uni A5 (145x210)", "uni A4 (210x297) 2 ante", "uni A4 (210x297) 3 ante", "uni A3 (420x297) 2 ante", "uni A3 (420x297) 4 ante"]
    arrLocandine = ["uni A4", "uni A3"]
    arrMenu = ["???"]
    arrAltro = []

    arrVisitac = ["bianco 220gr", "vergato 240gr", "goffrato 240gr"]
    arrLetterac = ["bianco liscio 85gr"]
    arrVolantinic = ["bianco 100gr lucido", "bianco 100gr opaco", "bianco 120gr lucido", "bianco 120gr opaco", "bianco 140gr lucido", "bianco 140gr opaco", "bianco 160gr lucido", "bianco 160gr opaco"]
    arrLocandinec = ["???", "??"]
    arrMenuc = ["???"]
    arrAltroc = []

    arrDigitale =[arrVisita, arrLettera, arrVolantini, arrLocandine, arrMenu, arrAltro]
    arrCarta =[arrVisitac, arrLetterac, arrVolantinic, arrLocandinec, arrMenuc, arrAltroc]

    // Funzione per alterare dinamicamente il contenuto del listbox formato
    function handleChange(newDisplay)
    { var ArticoliSelect, FormatoSelect, NumEntries, i
    ArticoliSelect = document.frm.Articoli
    FormatoSelect = document.frm.Formato

    // Delete all entries in formato list box
    for (i = FormatoSelect.length; i > 0; i--)
    {
    FormatoSelect.options[i-1] = null
    }

    // Add comment option to formato List box
    FormatoSelect.options[0] = new Option("-- Seleziona il formato --",0)

    // If articolo is selected add its formato to the formato List box
    if (newDisplay >= 0)
    {
    NumEntries = arrDigitale[newDisplay].length
    for (i = 1; i <= NumEntries; i++)
    {
    FormatoSelect.options[i] = new Option((arrDigitale[newDisplay])[i-1],((arrDigitale[newDisplay])[i-1]))
    }
    }
    FormatoSelect.selectedIndex = 0

    }
    // Funzione per alterare dinamicamente il contenuto del listbox carta
    function handleChange2(newDisplay2)
    { var ArticoliSelect, CartaSelect, NumEntries, i
    ArticoliSelect = document.frm.Articoli
    CartaSelect = document.frm.Carta

    // Delete all entries in formato list box
    for (i = CartaSelect.length; i > 0; i--)
    {
    CartaSelect.options[i-1] = null
    }

    // Add comment option to formato List box
    CartaSelect.options[0] = new Option("-- Seleziona la carta --",0)

    // If articolo is selected add its formato to the formato List box
    if (newDisplay2 >= 0)
    {
    NumEntries = arrCarta[newDisplay2].length
    for (i = 1; i <= NumEntries; i++)
    {
    CartaSelect.options[i] = new Option((arrCarta[newDisplay2])[i-1],((arrCarta[newDisplay2])[i-1]))
    }
    }
    CartaSelect.selectedIndex = 0

    }


    </script>
    </head>

    <body>


    Form digitale piccolo formato</p>


    </p>
    <form action="conferma_cappello.asp" method="POST" name="frm" id="form">
    articolo:
    <select name="Articoli" onChange="handleChange(this[this.selectedIndex].id), handleChange2(this[this.selectedIndex].id)">
    <option id="-1">-- Seleziona articolo --
    <option id="0" value="Biglietti da visita">Biglietti da visita
    <option id="1" value="Fogli lettera">Fogli lettera
    <option id="2" value="Volantini/Depliant">Volantini/Depliant
    <option id="3" value="Locandine">Locandine
    <option id="4" value="Menu">Menu
    <option id="5" value="Altro">Altro
    </select>


    formato:
    <select name="Formato">
    <option value="-1">
    <option>
    <option>
    <option>
    <option>
    <option>
    </select>


    carta:
    <select name="Carta">
    <option value="-1">
    <option>
    <option>
    <option>
    <option>
    <option>
    </select>
    <script type="text/javascript">
    handleChange(-1)
    handleChange2(-1)
    </script>



    <label>invia
    <input type="submit" name="Submit" value="Invia">
    </label>
    </form>

  5. #5
    risolto anche questo

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.