Menu a tendina: aiutoooooo

  • Creatore Discussione Creatore Discussione Neo
  • Data di inizio Data di inizio

Neo

Utente Attivo
7 Mar 2005
35
0
0
51
Camaiore (LU)
www.pepproject.it
Ciao raga, sono un programmatore ASP, ma conosco poco l'HTML. Ho questo problema: sto costruendo un sito di vendite baratti dove gli annunci, ovviamente, sono raggruppati per categorie e sottocategorie. Nel form di ricerca ho quindi due menù a tendina, uno relativo alle categorie ed uno alle sottocategorie. Il secondo dovrebbe essere visibile ma non selezionabile se prima non si è scelta una categoria dal primo, ed inoltre dovrebbe visualizzare solo le sottocategorie relative. Per la parte ASP ed i collegamenti al db non ho problemi, il mio problema è proprio il rendere non selezionabile il secondo menù, e quale istruzione devo aggiungere al tag <select ... del primo percé mi ricarichi la pagina appena viene selezionata una voce. Se non sono stato chiaro nella spiegazione visitate questa pagina . Non funziona perché il sito non è completo, ma almeno vi fate un'idea chiara di cosa chiedo!
Grazie a chiunque possa darmi una mano!
 
Puoi anche non visualizzare la select delle sottocategorie se l'evento scatenante non si verifica. Puoi passare una querystring alla pagina e controllare che se è valorizzata vome ti serve visualizzi la select, altrimenti no.

Hai idea di come fare?
 
Grazie Luke!

Si, so come fare, ma spero tu concordi con me che è molto più elegante se vengono visualizzati entrambi i menù! È una soluzione che ho visto utilizzata da molti siti anche con estenzione .asp e mi piacerebbe utilizzarla. Se proprio non riesco ad ottenere aiuto opterò per la tua soluzione!
 
Se non ricordo male, nella prima select puoi richiamare la pagina stessa all'evento onChange della select.

Codice:
<select onChange="javascript:self.location = "pagina.asp">
<option> ... </option>
</select>

Per rendere non selezionabile la seconda select, puoi usare l'attributo disabled.

Codice:
<select disabled></select>

maimai
 
x maimai

maimai ha scritto:
Se non ricordo male, nella prima select puoi richiamare la pagina stessa all'evento onChange della select.

Codice:
<select onChange="javascript:self.location = "pagina.asp">
<option> ... </option>
</select>

Per rendere non selezionabile la seconda select, puoi usare l'attributo disabled.

Codice:
<select disabled></select>

maimai

In questo momento sto scaricando degli aggiornamenti (01:35), appena fatto lo provo e ti faccio sapere. Se funziona ricordami che ti devo un favore!!!! :fonzie:
 
Tutto funzionante tranne un piccolo particolare: ho impostato il codice così:

Codice:
<select size=..... name="Categoria" onChange=javascript:self.location="/1024x768/index.asp?Cat="<%=Categoria%>>
.......
</select>

Il risultato nella barra degli indirizzi è:
Codice:
http://......../1024x768/index.asp?Cat=

La domanda sorge spontanea: Come mi porto dietro il valore della select? Ho già provato anche la versione javascript ....... ?Cat="&Categoria con lo stesso risultato. In pratica non mi serve a niente ricaricare la pagina se poi non posso recuperare il valore della select!

Per quanto riguarda la funzione disabled è proprio quello che cercavo, con una bella istruzione 'If ... then' al posto giusto è perfetto!

Spero tu possa aiutarmi anche con quest'altro problema!

Ciao da Neo
 
Ciao Neo,
ti dico come faccio io:
All'evento onChange della <select> del form richiamo una funzione javascript (a cui passo i parametri che mi interessano).
----------------------------------------------------------
Codice:
<script language="JavaScript">
 function passaParametri(valore)
{
 var valore
valore = document.nomeForm.Categoria.value
self.location = "pagina.asp?categ=" + valore;
 }
</script>
----------------------------------------------------------
Codice:
<select name="Categoria" onChange="Javascript:passaParametri(<%=Categoria%>)">


Naturalmente poi nel Request("categ") c'è scritto il valore passato.

maimai
 
maimai ha scritto:
Ciao Neo,
ti dico come faccio io:
All'evento onChange della <select> del form richiamo una funzione javascript (a cui passo i parametri che mi interessano).
----------------------------------------------------------
Codice:
<script language="JavaScript">
 function passaParametri(valore)
{
 var valore
valore = document.nomeForm.Categoria.value
self.location = "pagina.asp?categ=" + valore;
 }
</script>
----------------------------------------------------------
Codice:
<select name="Categoria" onChange="Javascript:passaParametri(<%=Categoria%>)">


Naturalmente poi nel Request("categ") c'è scritto il valore passato.

maimai

Inserito,testato e perfettamente funzionante! Ti ringrazio veramente tantissimo, ma vorrei approfittare della tua pazienza :D secondo te cosa c'è che non va in questo codice?
Codice:
<select name ........ >
  <% Set Rs=Conn.Execute ("Exec Qry.....")
  While (Not Rs.Eof) %>
    <option value="Rs(0)" <% If [I]variabile[/I]  =Rs(0) Then %> selected <%End If %>>Rs(1)</option>
    <% Rs.MoveNext
  Wend %>
</select>
Come avrai sicuramente capito mi dovrebbe impostare come selezionata la voce dell'elenco che corrisponde al valore della variabile di confronto, invece me la ignora completamente e pone tutte le voci senza 'selected' (l'ho verificato guardando il codice sorgente dal browser) e quindi mi imposta come predefinita la prima voce. In un altro menu con voci fisse ho usato la stessa tecnica (mettendo un if then in ogni option) e funziona! Non capisco!

Codice:
<select name="Operazione" .....  >
  <option value="A" <% If Operazione="A" Then %>selected<% End If %>>Tutti</option>
  <option value="B" <% If Operazione="B" Then %>selected<% End If %>>Baratto</option>
.......
</select>

[I]In questo caso funziona perfettamente[/I]

Puoi aiutarmi ancora? Grazie mille!
 
<select name ........ >
<% Set Rs=Conn.Execute ("Exec Qry.....")
While (Not Rs.Eof) %>
<option value="Rs(0)" <% If variabile =Rs(0) Then %> selected <%End If %>>Rs(1)</option>
<% Rs.MoveNext
Wend %>
</select>

Ma i valori scritti in "variabile" e in "Rs(0)" sono dello stesso tipo?
Cosa contiene "variabile"?
Se fai un response.write(variabile) cosa ottieni?

maimai
 
maimai ha scritto:
Ma i valori scritti in "variabile" e in "Rs(0)" sono dello stesso tipo?
Cosa contiene "variabile"?
Se fai un response.write(variabile) cosa ottieni?

maimai
Si, i valori sono dello stesso tipo. È inserito in un modulo per la ricerca e quando premo "cerca" viene ricaricata la pagina, il codice fa una query filtrata sul db per visualizzare i risultati e nel modulo dovrebbero ricomparire i valori precedentemente inseriti. In altre parole variabile non è altro che il nome della select recuperato col request a inizio pagina, quindi i valori non possono essere diversi. Ho fatto un response.write per vedere se i valori venivano passati correttamente prima della select e tutto funziona a dovere! (tranne la select appunto!) Comunque Rs(0) è un mumero intero corrispondente alla chiave primaria della tabella sul db e variabile è un numero che corrisponde al valore precedente della select. Ci capisci qualcosa? Io non vedo come altro potrei impostare il codice visto che il menu è dinamico!

Fammi sapere cosa ne pensi! Grazie mille.
 

Discussioni simili