- Home
- Categorie
- Coding e Sistemistica
- Altri linguaggi per il web
- [Risolto] evidenziare voce menu dinamico in pagina corrente
-
Ciao Bormiositi,
Mi viene in mente questo:
Potresti catturare la pagina corrente con
Request.ServerVariables("SCRIPT_NAME")
Confrontare il risultato con gli elementi del menù, quando uno di questi corrisponde lo evidenzi.
Buon lavoro!
-
intanto grazie per la risposta.
Quindi se on ho capito male dovrei fare un IF sulle voci del menù e quando trova la voce corrispondente alla pagina la faccio evidenziare.Il problema è che ho solamente una conoscenza base di ASP e quindi sono completamente a digiuno della sintassi che dovrei scrivere.
Quando io clicco su una voce del menù praticamente l'indirizzo della nuova pagina contiene l'ID del record relativo alla voce cliccata: quindi l'IF devo farlo su quell'ID?
Grazie ancora,
c.
-
Scusa ma mi sono perso, puoi fare un esempio concreto di URL contenuto nei link delle pagine?
-
l'indirizzo della pagina dopo aver cliccato sulla voce del menu è questa: w w w.miosito.it/dettaglio-progetto.asp?id=33
praticamente l'ID 33 se l'è portato dietro dopo aver cliccato sulla voce del menu.
A questo punto dovrei creare un IF su tutte le voci del menù per andare a vedere quale di quelle ha l'id=33 e quindi evidenziarla
-
Ah ok, allora è più semplice...
Se confronti **Request.QueryString("id") **con l'id della pagina ottieni il confronto, sì con un If sulle voci di menù.
Se i link provengono da una tabella di Access allora puoi scorrerle con un For Each e per ciascuna confrontare l'ID del link con quello che trovi nel QueryString...Buon lavoro
-
ok, ora ci provo e poi semmai ti disturbo di nuovo.
grazie 1000 per la disponibilità!!!!
-
Figurati, facci sapere com'è andata...
-
ciao artcava, come pensavo sto avendo problemi con lo script.....
Ho provato in questo modo:
<%Do while NOT RS.EOF%> <% if request.QueryString("id") <> rs("id") then response.write ("<span class='evid_txt'><a href=dettaglio-progetto.asp?id="&rs("id")&">"&rs("nome")&"</a></span><br>") else response.write ("<span class='txt'><a href=dettaglio-progetto.asp?id="&rs("id")&">"&rs("nome")&"</a></span><br>") end if rs.MoveNext Loop rs.Close Set rs = Nothing objConn.Close Set objConn=Nothing %>
così facendo però mi evidenzia tutti i link allo stesso modo e non solamente quello relativo all'id della pagina in cui mi trovo.
Dove sbaglio?Grazie ancora!!!
-
Ciao Bormiositi, la prima cosa che mi viene in mente è che rs("id") non contiene mai quello che arriva nel QueryString...
Quindi siccome rs("id") dovrebbe essere un tipo numerico, mentre il valore in QueryString è un testo, è probabile che anche se sembrano uguali in realtà sono sempre diversi.
Prova così:
<% Do while NOT RS.EOF if request.QueryString("id") <> CStr(rs("id")) then response.write ("<span class='evid_txt'><a href=dettaglio-progetto.asp?id="&rs("id")&">"&rs("nome")&"</a></span><br>") else response.write ("<span class='txt'><a href=dettaglio-progetto.asp?id="&rs("id")&">"&rs("nome")&"</a></span><br>") end if rs.MoveNext Loop rs.Close Set rs = Nothing objConn.Close Set objConn=Nothing %>
-
ciao artcava e grazie ancora per l'attenzione.
ho provato a fare come dici tu ma ora quando sono sulla pagina interessata non mi mostra più l'elenco dei link ma solamente quello relativo alla pagina in cui mi trovo e peraltro non viene nemmeno evidenziato come da istruzioni.Forse mi sono spiegato male: nella pagina in cui mi trovo dovrebbe comunque esserci l'elenco dei link (richiamato dalla select):
strSQL="SELECT * FROM progetti WHERE id = " &id& " ORDER BY periodo DESC ;"
e dovrebbe essere evidenziato solamente il link relativo alla pagina stessa.
Ti riassumo tutto lo script che dovrebbe eseguire l'operazione desiderata:
<% Dim conn Set conn = Server.CreateObject("ADODB.Connection") conn.Open "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & Server.MapPath("mdb-database/bear.mdb") ID=request.QueryString("id") Dim rs Set rs = Server.CreateObject("ADODB.Recordset") strSQL="SELECT * FROM progetti WHERE id = " &id& " ORDER BY periodo DESC ;" rs.Open strSQL,conn,1,3 %> <%Do while NOT RS.EOF if request.QueryString("id") <> CStr(rs("id")) then response.write ("<span class='evid_txt'><a href=dettaglio-progetto.asp?id="&rs("id")&">"&rs("nome")&"</a></span><br>") else response.write ("<span class='txt'><a href=dettaglio-progetto.asp?id="&rs("id")&">"&rs("nome")&"</a></span><br>") end if rs.MoveNext Loop rs.Close Set rs = Nothing conn.Close Set conn=Nothing %>
Ti ringrazio ancora per il prezioso aiuto.
-
OK, ma facendo quella query estrai solo il record che contiene quell'id, dovresti invece eseguire la query senza filtro per id in modo da avere tutti i record a diosposizione da scorrere...
-
ecco appunto, ma come ti dicevo non saprei proprio come fare a scorrere tutti i record e confrontarli con l'id della pagina....
un aiutino?grazie
-
OK, prova così:
Dim conn Set conn = Server.CreateObject("ADODB.Connection") conn.Open "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & Server.MapPath("mdb-database/bear.mdb") ID=request.QueryString("id") Dim rs Set rs = Server.CreateObject("ADODB.Recordset") strSQL="SELECT * FROM progetti ORDER BY periodo DESC ;" rs.Open strSQL,conn,1,3 Do while NOT RS.EOF if request.QueryString("id") <> CStr(rs("id")) then response.write ("<span class='evid_txt'><a href=dettaglio-progetto.asp?id="&rs("id")&">"&rs("nome")&"</a></span><br>") else response.write ("<span class='txt'><a href=dettaglio-progetto.asp?id="&rs("id")&">"&rs("nome")&"</a></span><br>") end if rs.MoveNext Loop rs.Close Set rs = Nothing conn.CloseSet conn=Nothing
-
grande artcava, moooolto gentile!!!!!!
ho capito dov'era l'errore: nella select gli dicevo di tirarmi fuori solo il record con un certo ID ed è per quel motivo che nell lla pagina veniva mostrato solamente un link.E poi grazie a:
if request.QueryString("id") <> CStr(rs("id")) the
sono riuscito a fare il confronto tra gli ID: quello portato dalla pagina precedente e quello presente nel link.
Davvero grazie ancora!!!!PS come faccio a mettere (RISOLTO) davanti al titolo del post????
-
Figurati...
Per il (RISOLTO) non saprei, non mi sembra venga utilizzato... Chiedo e ti faccio sapere!
-
Messo il tag.
Grazie per aver condiviso idee e conoscenze e aver portato alla felice risoluzione del caso in esame.
e buon proseguimento in gt.
-
Grazie a tutti voi per il prezioso aiuto!!!
Ottimo forum!!! Complimenti!!!