Avatar billede annettef Nybegynder
09. juli 2004 - 11:39 Der er 3 kommentarer og
1 løsning

Hvordan føres et id over til en ny asp side via et link??

Hej :O)

Jeg har en asp side, hvor en række varer (foto, titel og pris)udskrives fra en database. Oplysningerne foto, titel og pris om hver enkelt varer skal fungere som link til en ny asp side, hvor der skal udskrives yderligee oplysninger fra databasen om den valgte vare. Mit problem er at jeg ikke helt kan gennemskue hvordan jeg ved hjælp af mit link får valgt den rigtige vare og dermed de rigtige oplysninger på den nye asp side (det skal være ud fra varens id - vareid).

-------------
Udsnit af min kode...
<%
intVareId = Request.QueryString("intVareId")
%>
-------------
Her er head, body og en tabel med noget tekst
-------------
<%
Response.Write "<table border=0 cellspacing=0 cellpadding=5 width='475' align=center>"
Const COLUMN_COUNT = 3 'bestemmer hvor mange kolonner der skal være før der skiftes til ny række
' SQL forespørgsel
strSQL = "Select * From vare Where kategori = 'baerbare' Order By vareid"

' Udfør strSQL (rs kommer til at indeholde dataen)
Set rs = Conn.Execute(strSQL)

Column = 0 'tæller
Do While Not rs.EOF

If column = 0 Then Response.Write "<tr>" 'hvis tælleren er 0 udskrives en række

"<input type="hidden" name="intVareId" value='<%= rs("vareid")%>'>"
Response.Write "<td align='center' valign='top'>" & "<a href='vis_varer.asp?intVareId=<%=rs("vareid")%>'><img src=""" & rs("foto1") & """border='0'>" & "<br>"
        Response.Write rs("titel") & "<br>"
        Response.Write "Kr.&nbsp; " & rs("pris") & ",-" & "</a></td>"
        column = column + 1 'lægger en til tælleren
        If column = COLUMN_COUNT Then ' hvis tælleren er lig variablen som i dette tilfælde er sat til tre sluttes rækken
            Response.Write "</tr>" & vbNewLine 'starter ny linie
            column = 0
        End If
        RS.MoveNext
    Loop 'går i loop indtil recordset ikke indeholder flere records
   
%>

<%

    ' Afslutter den oprettede tabel
    Response.Write "</table><br>"

' Luk forbindelse fra dbconn.inc
Conn.Close
Set Conn = Nothing
%>

Jeg kan ikke finde ud af hvad jeg gør forkert - men jeg går ud fra det er fordi jeg har noget html inde i noget asp, men hvodan jeg lige adskiller det ved jeg ikke - håber nogen kan hjælpe mig!

...Annette
Avatar billede barkov Nybegynder
09. juli 2004 - 11:53 #1
Du skal sætte linket: "<a href='vis_varer.asp?intVareId=<%=rs("vareid")%>'> foran alle tekster for at de vil virke som et link til siden Vis_varer.asp - Jeg kan se at du også mangler en "Response.Write" for at den skriver teksten ud på skærmen ved følgende linie:
"<input type="hidden" name="intVareId" value='<%= rs("vareid")%>'>"
Den linier er også overflødig, da du ikke bruger en form til at sende data til en ny side. Så den skal egentlig bare fjernes, og så vil linket virke på dit billede.


Hvis du vil, så kan du sende koden og databasen til mig, så skal jeg ændre det for dig :)

Mvh
Allan
consult@barkov.dk
Avatar billede annettef Nybegynder
09. juli 2004 - 12:14 #2
Til barkov
Jeg har forsøgt at sætte linket foran alle tekster, men kan ikke få det til at fungere...

Jeg sender koden og databasen til dig

...Annette
Avatar billede barkov Nybegynder
09. juli 2004 - 21:27 #3
Her er løsningen - jeg kunne desværre ikke teste koden, da jeg ikke havde fået din include fil med til database connection. Men det går jo nok også.

Lige nu har jeg bare lavet det så det virker. Din ovenstående kode skal ændres til at være følgende:

--------------------------------------------------------------------------------
Response.Write "<table border=0 cellspacing=0 cellpadding=5 width='475' align=center>" 'Indholdstabel start
Const COLUMN_COUNT = 3 'bestemmer hvor mange kolonner der skal være før der skiftes til ny række
' SQL forespørgsel
strSQL = "Select * From vare Where kategori = 'baerbare' Order By vareid"

' Udfør strSQL (rs kommer til at indeholde dataen)
Set rs = Conn.Execute(strSQL)

'Tjekker om der er noget i databasen
'If rs.EOF Then

  ' Hvis der ikke er ingen tekster er i DB afsendes følgende meddelse.
  'Response.Write "<br><br><center><h1>Her er pt. ingen varer!</h1></center><br><br>"

'Else


    Column = 0 'tæller
  ' Men hvis DB ikke er tom, udskrives data.
    Do While Not rs.EOF
        If column = 0 Then
            Response.Write "<tr>" 'hvis tælleren er 0 udskrives en række
        end if
   
        Response.Write "<td align='center' valign='top'><a href='vis_varer.asp?intVareId=" & rs("vareid") & "'><img src=""" & rs("foto1") & """ border='0'><br>"
        Response.Write rs("titel") & "<br>"
        Response.Write "Kr.&nbsp;" & rs("pris") & ",-</a></td>"
        column = column + 1 'lægger en til tælleren
       
        If column = COLUMN_COUNT Then ' hvis tælleren er lig variablen som i dette tilfælde er sat til tre sluttes rækken
            Response.Write "</tr>" & vbNewLine 'starter ny linie
            column = 0
        End If
       
        RS.MoveNext
    Loop 'går i loop indtil recordset ikke indeholder flere records
   
    ' Afslutter den oprettede tabel
    Response.Write "</table><br>"

' Luk forbindelse fra dbconn.inc
Conn.Close
Set Conn = Nothing
%>
    </td>
  </tr>
</table>
<!--Hovedtabel slut-->

</body>
</html>
--------------------------------------------------------------------------------

Håber det løser alle dine problemer, ellers så må du jo lige skrive tilbage :)

Ha' en fortsat god dag :)
Avatar billede annettef Nybegynder
09. juli 2004 - 21:52 #4
Hej :O)

Jeg takker super mange gange for hjælpen - nu kan jeg holde ferie uden at skulle gå og tænk på det problem! Tak igen igen....

...Annette
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester