Visualizzazione dei risultati da 1 a 9 su 9
  1. #1

    select box

    ciao a tutti,
    in una form all'interno di una jsp ho 2 select box, la prima per la provincia e la seconda per il comune.

    Bene.... la prima viene popolata al caricamento della jsp con tutte le province che si trovano in una tabella nel db, ma la seconda, quella con i comuni... come faccio a popolarla?

    Devo fare un'altra query "select * from comuni where provincia = ..." ma come? attraverso una servlet?, ripassando un parametro alla jsp e ricaricandola? ... solo che cosi mi perderei i dati inseriti prima di arrivare a queste due select box.... non ho mai fatto una cosa del genere. qualcuno di voi mi può aiutare?

    grazie a tutti

  2. #2
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,328

    Moderazione

    Ho modificato il titolo per renderlo nu po' più conforme al regolamento.

    Ad ogni modo, devi fare in modo che al cambio di valore della prima box la pagina venga reinviata al server per la successiva query.

    Questo lo puoi fare creando una SELECT di questo tipo:
    codice:
    <select name="nome" size=1 onchange="window.location=('tuapagina.jsp?param=' + this.options[this.selectedIndex].value)"
    Dove, ovviamente, tuapagina.jsp riceverà il parametro "param" che conterrà il valore con cui effettuare la seconda query.


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  3. #3
    Avevo immaginato qualcosa del genere, ma non perdo i dati che ho inserito nelle textbox precedenti alle combo in questione, quando ricarico la pagina?
    Guarda... ho fatto qualcosa di similare soltanto che mi sono messo a manina, all'interno di una funzione javascript tutti i comuni delle relative province! Un lavoraccio! All'utente finale non cambia nulla, ma a me si!
    Comunque domani appena rientro in ufficio sarò ben felice di provare questa soluzione....
    ti terrò aggiornato...

    grazie

  4. #4
    ciao,
    ho provato a fare come hai detto tu. come immaginavo, ricaricando la pagina vengono persi tutti i dati inseriti nei campi di testo situati prima delle due select box, e non solo..... scegliendo uno qualsiasi dei valori della combo, ricaricando la pagina, mi ritrovo un altro valore (che è il primo della lista).

    strano che non esista un metodo semplice, attraverso javascript che non ricarichi la pagina. Gli unici esempi che ho trovato in rete prepopolavano un oggetto e lavoravano su quello, solamente che io devo lavorare con province e comuni... che fatti 2 conti non sono pochi

    beh... il nostro sito per ora è attivo solo su bergamo varese e milano... quindi sono 3 eh ahimè... li inserirò a manina

  5. #5
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    Ci sono diverse soluzioni e tutte che consentono di mantenere i dati già inseriti.
    La prima, con il reload della pagina.

    paginadati.jsp
    codice:
    ...
    ...
    <form name="dati" action="elaboradati.jsp" method="post">
      ...
      ...
      <select name="prov" onchange="this.form.action='paginadati.jsp';this.form.submit();">
        <option value="1">MI</option>
        <option value="2">BS</option>
        ...
        ...
      </select>
    </form>
    Ossia cambi l'action del form nella pagina stessa contenente il form. Devi chiaramente aggiungere un po' di logica server-side al form... ad esempio tutti i "value" saranno del tipo
    codice:
    <input type="text" name="dato_x" value="<% =request.getParameter("dato_x");%>" />
    e similmente per le select (caricane le voci tramite un ciclo for con i dati delle option e aggiungi selected all'option mandata a browser)


    L'altra soluzione invece prevede l'uso di una chiamata asincrona, ossia l'utilizzo di AJAX... se non sei tanto pratico e vuoi approfondire c'è una guida fatta bene qui su html.it
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  6. #6
    ...anche un amico mi ha parlato di ajax... ora provo a dargli un'occhiata... nel frattempo provo la prima soluzione.

    grazie

  7. #7
    Per cose del genere indubbiamente usa Ajax.

    L'aggiornamento è pressocchè immediato ed eviti il ricaricamento della pagina.

    Al mio segnale... scatenate l'inferno!

  8. #8
    Sarebbe l'ideale... ma il tempo stringe e con AJAX sono a zero.... comunque sto leggendo la guida su questo sito e devo dire che è davvero molto chiara...

  9. #9
    Tranquillo che per ciò che devi fare ti ci vogliono 5 minuti per imparare... non è affatto complicato
    Al mio segnale... scatenate l'inferno!

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.