Visualizzazione dei risultati da 1 a 10 su 10
  1. #1
    Utente di HTML.it L'avatar di Renyp
    Registrato dal
    Nov 2004
    Messaggi
    304

    Onchange su due select dinamiche

    Ciao a tutti!
    Dopo la umile premessa che di javascript continuo a capirci pochino , e dopo aver cercato molto tra richieste e 3d simili, vi pongo un quesito per voi sicuramente banale.
    Sto creando un motore di ricerca interno al mio sito, con cui scegliere tra diversi annunci immobiliari divisi per zona e quartiere. Le due select utilizzate sono popolate dinamicamente con asp.
    Le mie esigenze, in soldoni:
    1- seleziono una opzione nella prima select;
    2- il valore scelto possa essere utilizzato nella query che uso per popolare la seconda select;
    quindi i valori della 2^ dipendono da quello scelto nella 1^;
    3- cliccando su "Vai" passo i due valori (zona e quartiere) ad un'altra pagina - o alla stessa, dipende da dove si effettua la ricerca - tramite la quale pubblicare gli annunci ricercati.

    Spero mi possiate essere d'aiuto e vi ringrazio in anticipo!

    Ciao!!

  2. #2
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    Ciao, sì, se n'è già parlato. Ci sono diversi approcci, personalmente però se i dati in database sono potenzialmente tanti, piuttosto di tirare fuori tutto in una volta sola preferisco spezzare la procedura... qualcosa del tipo:
    codice:
    <select name="regione" onchange="window.location.href='loaddata.asp?regione='+this.value;">
      <option value="1">Valle D'Aosta</option>
      <option value="2">Liguria</option>
      <option value="3">Piemonte</option>
     ...
    </select>
    Se regione è settata ed è valida, esegui una query in cui ad esempio, tiri fuori tutte le province in cui effettivamente ci siano offerte immobiliari e popoli la seconda select e così via, aggiungendo in querystring i campi che vuoi andare ad interrogare.
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  3. #3
    Utente di HTML.it L'avatar di Renyp
    Registrato dal
    Nov 2004
    Messaggi
    304
    ho fatto così, ovviamente al primo colpo non va...:rollo:
    ti posto anche l'asp che uso, per comodità:
    codice:
    <select name="localita" onChange=onchange="window.location.href='annunci.asp?zona='+this.value;">												
    																<% 
    	dim rsLocalita, sqlLocalita												set rsLocalita = server.CreateObject("ADODB.recordset")								sqlLocalita = "SELECT * FROM Localita"
            rsLocalita.open sqlLocalita, objConn
    %>
    																<% DO UNTIL rsLocalita.eof %>
    <option value="<%= rsLocalita("localita")%>"><%= rsLocalita("localita")%></option>
    <% 
    	rsLocalita.movenext 
    	loop 
    %>
    </select>
    <select name="quartieri">
    <%
    dim zona
    zona = request.QueryString("zona")
    																if zona <> "" then
    																	dim rs1, sql1
    	set rs1 = server.CreateObject("ADODB.recordset")
    	sql1 = "SELECT * FROM Localita INNER JOIN Quartieri ON Localita.ID = Quartieri.id_localita Where Localita.localita = " & zona
    																	rs1.open sql1, objConn
    %>
    <% DO UNTIL rs1.eof %>
    <option value="<%= rs1("Quartieri.quartiere")%>"><%= rs1("Quartieri.quartiere")%></option>
    <% 
    	rs1.movenext 
    	loop 
    %>
    <% else 
    																	dim rs2,sql2
    	set rs2 = server.CreateObject("ADODB.recordset")
    	sql2 = "SELECT * FROM Quartieri" 
    	rs2.open sql2, objConn
    %>
    <% DO UNTIL rs2.eof %>													<option value="<%= rs2("quartiere")%>"><%= rs2("quartiere")%></option>
    <% 
    	rs2.movenext 
    	loop 
    %>
    <% end if %>
    </select>
    <input type="image" src="images/freccia_vai2.gif" name="invia" value="invia"> 
    <input type="hidden" value="invia" name="invia">
    </form>
    Al variare della scelta della prima select, non ci sono conseguenze sulla seconda..

  4. #4
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    Ok, io sono piàù PHP oriented, però quando mi capitano cose del genere faccio un po' di debug: cosa succede se togli tutto (tutto l'html) ed esegui solo una query (quella con cui dovresti andare a popolare la seconda select per intenderci): funziona? Ti torna il risultato? Se sì, allora si procede ad isolare quale possa essere il problema in javascript, altrimenti il problema è in asp.
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  5. #5
    Utente di HTML.it L'avatar di Renyp
    Registrato dal
    Nov 2004
    Messaggi
    304
    allora le due select appaiono popolate di tutti i record presenti nelle rispettive tabelle.
    Detto questo, se faccio una scelta sulla prima, nella seconda non succede nulla, rimangono sempre tutti i record e non fa la selezione che indico nella query..
    Magari la query è sbagliata...
    Però non mi pare di notare caricamenti della pagina quando effettuo una scelta della prima select..dovrebbe farne?
    E poi mi chiedevo, conoscendo pochissimo javascript: con la funzione che ho inserito all'evento Onchange, dovrei passare nella querystring un valore a "zona", in modo tale che controllando il valore di "zona" per la query della seconda select, posso ottenere il risultato voluto. Però sembra quasi che questo valore non passi, e che, nell'if condizionale, passi direttamente all'else, quando cioè zona = ""...
    spero di essermi spiegato bene, sto facendo un po' confusione...

  6. #6
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    Puoi postare il codice della pagina? Non il sorgente ASP, intendo dire proprio il codice che si ottiene recuperandolo dal browser (o meglio ancora, se hai la possibilità di mettere la pagina online, posta l'indirizzo)
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  7. #7
    Utente di HTML.it L'avatar di Renyp
    Registrato dal
    Nov 2004
    Messaggi
    304
    Allora avevo fatto l'errore più banale del mondo: copiando il tuo codice ho scritto due volte Onchange=onchange=...
    Adesso penso che funzioni, devo solo far funzionare asp quando passo un valore con la prima select..strano perchè la query su db funge...
    Comunque adesso provo a capire di cosa si tratta...in ogni caso, se tutto funge, a questo punto, quando clicco su "vai" dovrebbe passarmi due valori, uno per la prima uno per la seconda select, giusto?

  8. #8
    Utente di HTML.it L'avatar di Renyp
    Registrato dal
    Nov 2004
    Messaggi
    304
    Ho risoltooooo!!!!!!!!!

    Grazie mille, non puoi immaginare quanto sia stato prezioso il tuo aiuto...

  9. #9
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  10. #10
    Utente di HTML.it
    Registrato dal
    Nov 2004
    Messaggi
    322
    Spero di non essere OT al topic.. ma riguardo sempre l'evento onChange..

    Perchè avrei una select con valori da 1 a 30;
    A seconda del valore selezionato ottengo in un'altra casella (in cui c'è un valore base) tramite una formula, un altro valore..

    Ora.. avrei bisogno di ricuperare il valore, o anche il testo selezionato nella select, nell'evento on Change..

    Nel senso... se nella select ho 20, vado a cliccare e scelgo 21, vorrei recuperare anche quel 20.. è possibile?

    Credo.. di essermi spiegato un pò da schifo

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.