• Moderatore

    Figurati, facci sapere com'è andata...


  • User Attivo

    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!!!


  • Moderatore

    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
    %>
    
    

  • User Attivo

    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.


  • Moderatore

    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...


  • User Attivo

    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


  • Moderatore

    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
    
    

  • User Attivo

    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????


  • Moderatore

    Figurati...

    Per il (RISOLTO) non saprei, non mi sembra venga utilizzato... Chiedo e ti faccio sapere!


  • Consiglio Direttivo

    Messo il tag. 😉

    Grazie per aver condiviso idee e conoscenze e aver portato alla felice risoluzione del caso in esame.

    :ciauz: e buon proseguimento in gt.


  • User Attivo

    Grazie a tutti voi per il prezioso aiuto!!!

    Ottimo forum!!! Complimenti!!!:gthi: