09. juli 2004 - 11:39Der 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. " & 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!
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 :)
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
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-->
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
Synes godt om
Ny brugerNybegynder
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.