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

    istruzione InStr in una Select

    Ciao a tutti,
    una domanda da profano: è possibile inserire un'istruzione "instr()" in un Case di una Select?
    Mi spiego - volevo dinamizzare la classe dei tag[*] in una lista/menu e ho scritto il seguente codice:

    codice:
    Dim url, liTag
    url = Request.ServerVariables("URL")
    Select case url
    	case instr(url, "menu1.asp")
    		liTag = "<li class=" & chr(34) & "current" & chr(34) & ">"
    	case instr(url, "menu2.asp")
    		liTag = "<li class=" & chr(34) & "current" & chr(34) & ">"
    	case instr(url, "menu3.asp")
    		liTag = "<li class=" & chr(34) & "current" & chr(34) & ">"
    	case instr(url, "menu4.asp")
    		liTag = "<li class=" & chr(34) & "current" & chr(34) & ">"
    	case instr(url, "menu5.asp")
    		liTag = "<li class=" & chr(34) & "current" & chr(34) & ">"
    	case else
    		liTag = "[*]"
    End Select
    
    Response.Write("<ul>")
    	With Response
    		.Write(liTag & "MENU1")
    		.Write(liTag & "MENU2")
    		.Write(liTag & "MENU3")
    		.Write(liTag & "MENU4")
    		.Write(liTag & "MENU5")
    	End With
    Response.Write("[/list]")
    ...ho scritto una cavolata? :master:
    Love&Peace

  2. #2

    Re: istruzione InStr in una Select

    Originariamente inviato da yappappeo
    Ciao a tutti,
    una domanda da profano: è possibile inserire un'istruzione "instr()" in un Case di una Select?
    Mi spiego - volevo dinamizzare la classe dei tag[*] in una lista/menu e ho scritto il seguente codice:

    codice:
    Dim url, liTag
    url = Request.ServerVariables("URL")
    Select case url
    	case instr(url, "menu1.asp")
    		liTag = "<li class=" & chr(34) & "current" & chr(34) & ">"
    	case instr(url, "menu2.asp")
    		liTag = "<li class=" & chr(34) & "current" & chr(34) & ">"
    	case instr(url, "menu3.asp")
    		liTag = "<li class=" & chr(34) & "current" & chr(34) & ">"
    	case instr(url, "menu4.asp")
    		liTag = "<li class=" & chr(34) & "current" & chr(34) & ">"
    	case instr(url, "menu5.asp")
    		liTag = "<li class=" & chr(34) & "current" & chr(34) & ">"
    	case else
    		liTag = "[*]"
    End Select
    
    Response.Write("<ul>")
    	With Response
    		.Write(liTag & "MENU1")
    		.Write(liTag & "MENU2")
    		.Write(liTag & "MENU3")
    		.Write(liTag & "MENU4")
    		.Write(liTag & "MENU5")
    	End With
    Response.Write("[/list]")
    ...ho scritto una cavolata? :master:
    Ciao
    non credo di aver capito il codice...
    intanto al posto dei chr(34) metterei cli apici singoli che funzionano lo stesso:

    codice:
    liTag = "<li class='current'>"
    Poi non capisco perché mettere un case che differenzia il risultato solo per il "case else".
    Forse dovresti chiarire lo scopo: cosa vuoi ottenere?
    ***************************
    Non può piovere per sempre...
    ***************************

  3. #3
    ciao e grazie per la risposta...

    Il motivo per cui mi serve differenziare è che nel menu non sarà presente il link alla homepage del sito, che si trova al di fuori della lista. Quindi, quando sono nella home il tag[*] del menu deve essere senza classe, mentre quando entro nelle pagine "Menu N" deve riconoscere l'Url e attivare la classe solo dove serve...

    ...o mi sto complicando la vita? :master:
    Love&Peace

  4. #4
    Originariamente inviato da yappappeo
    ciao e grazie per la risposta...

    Il motivo per cui mi serve differenziare è che nel menu non sarà presente il link alla homepage del sito, che si trova al di fuori della lista. Quindi, quando sono nella home il tag[*] del menu deve essere senza classe, mentre quando entro nelle pagine "Menu N" deve riconoscere l'Url e attivare la classe solo dove serve...

    ...o mi sto complicando la vita? :master:
    Vediamo se ho capito:

    codice:
    Dim url, liTag
    url = Request.ServerVariables("URL")
    
    if instr(url, "home_page.asp") then
         liTag = "[*]"
    else
         liTag = "<li class='current'>"
    end if
    
    Response.Write("<ul>")
    	With Response
    		.Write(liTag & "MENU1")
    		.Write(liTag & "MENU2")
    		.Write(liTag & "MENU3")
    		.Write(liTag & "MENU4")
    		.Write(liTag & "MENU5")
    	End With
    Response.Write("[/list]")
    ...Funziona?

    ***************************
    Non può piovere per sempre...
    ***************************

  5. #5
    domanda: ma così facendo, quando non sono nella home, non mi diventano TUTTI i tag[*] con la classe "current"?

    ...invece il funzionamento deve essere che se sono nel "MENU 1" la classe "current" deve apparire SOLO nel tag[*] del "MENU 1", ecc... .
    Love&Peace

  6. #6
    ...potrei mettere una condizione "if" per ciascun[*] del menu che mi verifichi la presenza del nome della nell'url, ma con la select mi sembrava più (come dire) "elegante"...
    Love&Peace

  7. #7
    Originariamente inviato da yappappeo
    domanda: ma così facendo, quando non sono nella home, non mi diventano TUTTI i tag[*] con la classe "current"?

    ...invece il funzionamento deve essere che se sono nel "MENU 1" la classe "current" deve apparire SOLO nel tag[*] del "MENU 1", ecc... .
    Oh, ecco, ora ci capiamo :-)


    codice:
     
    Dim url, lista_menu
    url = Request.ServerVariables("URL")
    
    if instr(url, "menu1.asp") then
         lista_menu = "<li class='current'>MENU1"
    else
         lista_menu = "[*]MENU1"
    end if
    if instr(url, "menu2.asp") then
         lista_menu = lista_menu  & "<li class='current'>MENU2"
    else
         lista_menu = lista_menu  & "[*]MENU2"
    end if
    
    ....
    
    Response.Write("<ul>")
    	Response.Write(lista_menu)
    Response.Write("[/list]")
    Dove al posto dei puntini devi, ovviamente, mettere il codice degli altri menù (copiando quello del menu2)...

    Facci sapere!

    ***************************
    Non può piovere per sempre...
    ***************************

  8. #8
    Si, se preferisci puoi scrivere il case ma all'interno di ogni opzione devi comporre tutto il menù...
    ***************************
    Non può piovere per sempre...
    ***************************

  9. #9
    'azz, funziona...

    ...un grande Luca!...
    Love&Peace

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 © 2026 vBulletin Solutions, Inc. All rights reserved.