1 messaggio dal 20 aprile 2012
Ciao
dovrei realizzare una select dinamica (client side)tipo regioni/province con option prese da un db access poi all'invio della form vorrei che i valori selezionati non fossero resettati.
per fare un esempio tipo quella di Marca/Modello del link di seguito
http://www.subito.it/annunci-marche/vendita/auto/?cb=000085&cm=001395

Qualcuno sa indicarmi qualche spunto?
Grazie
11.886 messaggi dal 09 febbraio 2002
Contributi
Ciao, è richiesto un po' di javascript, ma nulla di estremamente complicato.
Si tratta di gestire l'evento onchange della prima select e riempire la seconda con nuove voci, in base a ciò che è stato selezionato.
  • Questi "nuovi valori" possono già trovarsi nella pagina - ad esempio sottoforma di array javascript. Qui trovi delle demo, in particolare guarda l'ultima al paragrafo chiamato "Linked select elements with data tables". Trovi anche il codice necessario al funzionamento.
    http://www.infimum.dk/HTML/multiselect.html
  • Oppure, specie se le scelte sono tante, si preferisce non memorizzare i "nuovi valori" nella pagina per non appesantirla. In questo caso è opportuno effettuare delle richieste ajax in modo che il server ti restituisca solo le voci che andrai a visualizzare di lì a poco.
    Il fatto che ci sia di mezzo ajax può sembrare una complicazione ma così non è, specie se usi jQuery e i suoi plugin.
    Qui trovi appunto un plugin fornito di documentazione ed esempi:
    http://www.erichynds.com/jquery/jquery-related-dependent-selects-plugin/


rico769 ha scritto:

dovrei realizzare una select dinamica (client side)tipo regioni/province

Penso che la prima soluzione possa andar bene. Le province italiane sono circa 110 quindi non così tante da appesantire la pagina. Magari definiscile in un file .js a sé stante così, dopo la prima visita, il file rimarrà nella cache del browser e verrà ricaricato istantaneamente nelle successive visite alla pagina.

Se, oltre alle province, volessi aggiungere anche una terza select per il comune, allora sarebbe proprio il caso di ricorrere ad ajax. I comuni italiani sono più di 8000.

rico769 ha scritto:

all'invio della form vorrei che i valori selezionati non fossero resettati.

Reimposta il valore selezionato usando il javascript. Usa una riga del genere:
document.getElementById('IdSelect').value = "<%= Request.Form("NomeSelect") %>";
La porzione di codice <%= Request.Form("NomeSelect") %> servirà a leggere dal form il valore della select e a ristamparlo subito nella pagina in quell'istruzione javascript. Se usi jQuery, in alternativa puoi anche fare così:
$("#IdSelect").val("<%= Request.Form("NomeSelect") %>");

(Questo codice va messo in un tag <script>, ad esempio prima della chiusura del body, oppure all'interno del $(document).ready di jquery.)

ciao
Modificato da BrightSoul il 25 aprile 2012 16.37 -

Enjoy learning and just keep making

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.