Menù a tendina dinamici

  • 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
Cari ragazzi, ho un piccolo problema con l'oggetto in questione: sono alle prese con un sito che prevede un modulo di ricerca. In questo modulo ci sono dei menù a tendina dinamici. Quando l'utente preme il tasto 'Cerca', la pagina viene ricaricata, recupero tutti i dati, compresi quelli dei menù, il codice esegue i dovuti filtraggi sul db per la visualizzazione. Il problema è che i menu a tendina dovrebbero evidenziare l'ultima voce selezionata. Ho pensato a questo:
Codice:
<select name="Categoria" size="1">
  <% Set Rs=Conn.Execute("Exec QryCategorie")
  while (Not Rs.Eof) %>
    <option <% If Categoria=Rs(0) Then %> selected <% End If %> value="<%=Rs(0)%>"><%=Rs(1)%></option>
    <% Rs.MoveNext
  Wend %>
</select>
A me sembra OK, ma nonstante questa mia convinzione, il motore ASP non è daccordo ed il brutto è che è appoggiato da tutti e 4 i miei browser, i quali si ostinano a dargli ragione!!!
A parte gli scherzi, ho visualizzato il codice sorgente dal browser e sembra proprio che l'if then venga totalmente ignorato, infatto il menù mi mostra sempre la pima opzione e nel codice non c'è ombra di un 'selected'. Qualcuno ha idee?
Per evitare risposte inutili vi dico che:
Rs è impostato come oggetto recordset, conn è impostato come oggetto OLEDB connection, utilizzo IIS su XP perfettamente configurato, le pagine le scrivo in FronPage2000 aprendo la cartella come web e le prove su browser le eseguo da intranet (protocollo http ossia nella barra degli indirizzi compare 'http://localhost/....')
Grazie a chiunque voglia e possa darmi una mano.
 
Ciao Neo,
vedo che riprendi qui il post...
Da quel che ho capito la variabile Categoria contiene il Request("Categoria") cioè il valore scelto nella select, e vuoi che l'ultimo valore scelto rimanga selezionato.
E Categoria contiene un dato di tipo numerico...

Penso che potresti provare così:

Codice:
<option <% If cint(Categoria)=Rs(0) Then %> selected <% End If %>

maimai
 
Grazie maimai & lukeonweb

Infatti raga! Circa mezzora dopo che ho lasciato il post, mi è venuto inmente che per qualche arcano motivo la variabile 'Categoria' mi venisse interpretata some string e non come integer, ho provato infatti con Val(Categoria) e mi ha restituito un errore di dati non conformi (verificando il mio pensiero), allora in cima alla pagina ho modificato la request in
Codice:
Categoria=CInt(Request(Categoria))
ed improvvisamente tutto funziona! È proprio vero, a volte laspiegazione più stupida è quella giusta! Mi sono scervellato per giorni cercando di capire come mei non funzionasse e la spiegazione era lì sotto i miei occhi!
Comunque grazie per l'aiuto e ci risentiamo nel forum!

Ciao da Neo
 
E risiamo qui con un altro quesito: la soluzione che maimai mi ha dato per i menu a tendina è perfetta, così perfetta che mi domando se sia possibile applicarla anche ai pulsanti di opzione. Mi spiego meglio: in fase di iscrizione i futuri clienti di un mio lavoro dovranno fornire o il codice fiscale o la partita iva. Ho creato nel form una coppia di pulsanti di opzione chiamata CF_PI che definisce che tipo di informazione il cliente ha intenzione di fornire, ed una casella di testo a riga singola per il dato in questione. Mi piacerebbe però che le caselle fossero due (controllo dati inseriti molto più semplice) e che venisse abilitata l'una o l'altra in base alla selezione. È possibile farlo secondo voi? Inoltre, esiste in giro per il web uno script che analizza i dati di una persona in modo da validare il codice fiscale inserito da questa? Se si, dove lo posso trovare?

Grazie a chiunque mi possa dare una mano!
 
Ciao Neo,
penso che per l primo problema puoi adottare una soluzione del genere:

Codice:
<body>
<form name="nomeForm" action="pagina.asp">
Scegli:<br>
Cod. Fisc.
<input type="radio" name="CF_PI" value="CF"  
onClick="Javascript:document.nomeForm.codFisc.disabled = false; document.nomeForm.pIva.disabled = true;">&nbsp;
P. Iva
<input type="radio" name="CF_PI" value="PI"
onClick="Javascript:document.nomeForm.codFisc.disabled = true; document.nomeForm.pIva.disabled = false;">
<br>
Cod. Fiscale<input type="text" name="codFisc" disabled>
<br>
P. Iva<input type="text" name="pIva" disabled>
</form>
</body>

All'inizio le caselle di testo sono tutte e due disabled.
Poi selezionando un radiobutton si attivano rispettivamente una o l'altra casella di testo.

Per il controllo del codice fiscale... ti consiglio due link:

http://www.icosaedro.it/cf-pi/index.html

http://www.jsdir.com/tutorials/cfregexp.asp

maimai
 
maimai, ma sei una fonte inesauribile di tips&triks!!! :D

Grazie di tutto, anche se i link che hai fornito nel messaggio offrono controlli sulla validità diretta dei codici inseriti, non controllano la corrispondenza con i dati dell'utente! In ogni caso è una buona partenza, ora smanetto un po sulla rete partendo da li e vedo se trovo qualcosa!

Thanks a lot!

Ciao da Neo
 

Discussioni simili