Avatar billede dsjk Novice
12. april 2002 - 18:54 Der er 8 kommentarer og
2 løsninger

album - næste billed...

hvis man ser på http://www.densortejakke.dk/albumlille.asp?datolink=020302
er der 7 billeder alle hentet med sti fra en accessdatabase, vælger man så et billed, kommer det frem på en ny side vha. idnr.
http://www.densortejakke.dk/albumstor.asp?id=20
Men her kan man kun vælge tilbage (da det lige var hvad jeg kunne), men jeg vil gerne have at man kan trykke på næste og forrige så man her kan skifte mellem billederne som var på http://www.densortejakke.dk/albumlille.asp?datolink=020302

Hvordan gør jeg det?

dsjk
Avatar billede coltau Juniormester
12. april 2002 - 21:01 #1
Vis os ASP-koden der viser billedet i stor format. Det er jo der der skal ændres.
Avatar billede dsjk Novice
12. april 2002 - 21:20 #2
<%
Dim rsalbum__MMColParam
rsalbum__MMColParam = "1"
if (Request.QueryString("id") <> "") then rsalbum__MMColParam = Request.QueryString("id")
%>
<%
set rsalbum = Server.CreateObject("ADODB.Recordset")
rsalbum.ActiveConnection = MM_cdsj_STRING
rsalbum.Source = "SELECT * FROM album WHERE id = " + Replace(rsalbum__MMColParam, "'", "''") + ""
rsalbum.CursorType = 0
rsalbum.CursorLocation = 2
rsalbum.LockType = 3
rsalbum.Open()
rsalbum_numRows = 0
%>

dsjk
Avatar billede dsjk Novice
12. april 2002 - 23:56 #3
Jeg vil lige forklare hvordan jeg har bygget albummet op.
Der er pt. billeder fra 3 begivenheder i databasen, alle med en begivenhedsdato fx. 020302. Der er altså 3 forskellige datoer.
Som man ser på www.densortejakke.dk/album.asp kan man vælge de 3 forskellige begivenheder, vælger man fx. den med dato 020302, kommer man hen på albumlille.asp hvor den viser de billeder der findes med dato 020302, disse hentes via sql (SELECT * FROM album WHERE datolink = "020302")
Når man så trykker på et af billederne bliver det hentet frem på albumstor.asp vha. id nummeret, som I kan se i kommentaren her over.

Det er så her jeg gerne vil have de 2 knapper "Næste" & "Forrige" som går hen til hhv. næste eller forrige billede som høre til begivenheden.

Håber meget på hjælp, da jeg er lidt lost...

dsjk
Avatar billede stoney96 Nybegynder
13. april 2002 - 01:06 #4
Du skal allerede i "albumlille" lave billedoversigten med id-numrene for forrige billede samt næste billede og sætte dem ind i querystrengen således at din querystring bliver noget svarende til
albumstor.asp?id=23&prev=22&next=24.
Det må du kunne lave ved at vandre lidt frem og tilbage i recordsættet imens du laver albumlille.asp. I albumstor.asp fanger du så "prev" i querystrengen og laver en pil eller link til det forrige billede med albumstor.asp?id=<%=request.querystring("prev")%> og ligeledes til næste billede med request.querystring("prev") osv.....
Happy coding...;O)
Avatar billede stoney96 Nybegynder
13. april 2002 - 01:08 #5
Mente selvfølgeligt request.querystring("next") i slutningen af forrige indlæg.....
Avatar billede dsjk Novice
13. april 2002 - 12:08 #6
ok, det er jeg i gang med, og det ser ud til at virke.
Men jeg er stødt på et lille problem:
Jeg vil gerne have at knappen "forrige" kun vises hvis Request.Querystring("forrige") er <> 0 og har derfor sat det ind sådan her:

<%
IF (Request.Querystring("forrige") <> "0") Then
  forrige = (Request.Querystring("forrige") -1)
  naeste = (Request.Querystring("id"))
  knap = "<a href=""albumstor.asp?id=<%=Request.Querystring('forrige')%>&forrige=<%=forrige%>&naeste=<%=naeste%>"">Forrige</a>"
else
  knap =""
End If
%> 

og der hvor Forrige skal stå har jeg sat dette ind: <%=knap>

Men jeg får denne fejl:
Unterminated string constant
/dsjny/albumstor.asp, line 242, column 68
knap = "<a href=""albumstor.asp?id=<%=Request.Querystring('forrige')
-------------------------------------------------------------------^

hvad er galt?
dsjk
Avatar billede dsjk Novice
13. april 2002 - 21:14 #7
ok, har fået det til at virke.

Men hvad nu hvis billederne har id nummerne 20,21,23,24,25 altså hopper en over, så virker det ikke helt.
Og det skulle gerne være sådan at man, i dette tilfælde, ikke kan trykke på forrige når man ser billed 20, og det samme ved nr 25. Altså man skal kun have mulighed for at se de billeder der er indenfor begivenheden.

Hvordan løses det?

dsjk
Avatar billede coltau Juniormester
14. april 2002 - 09:26 #8
Du bør løse hele problematikken i den asp-fil du kalder albumstor.asp
Linket til albumstor skal altid se således ud: albumstor.asp?ID=?? hvor ?? er id-nummer på det aktuellel billede.
albumstor.asp kan så i hovedtræk opbygges således:

strID = Request.QueryString("ID") ' Find ID for aktuelle billede

' Hent aktuelle billede
SQL = "select * from album where ID=" & strID
' Vis info omkring aktuelle billede.

' Husk dato for serien. !
strDato = RS("dato")

' Find forrige.
SQL = "select TOP 1 ID from album where ID<" & strID & " and dato=" & strDato

if RS.EOF then
  ' Ingen forrige
else
  ' Lav forrige-knap
  Response.Write("<a href='?ID=" & RS("ID") & "'>Forrige</a>")
end if

' På samme måde med næste knappen.
SQL = "select TOP 1 ID from album where ID>" & strID & " and dato=" & strDato

if RS.EOF then
  ' Ingen næste
else
  ' Lav næste-knap
  Response.Write("<a href='?ID=" & RS("ID") & "'>Næste</a>")
end if

De links i albumlille.asp som peger på albumstor.asp behøver så kun at indeholde aktuelle ID: ?ID=?? (Stor fordel)

Med denne løsning findes hele problemstillingen i en og samme asp-kode, hvilket gør det nemmere når du skal rette i det om et halv år. :-)
Avatar billede coltau Juniormester
14. april 2002 - 09:28 #9
Med løsningen må der jo også være "huller" i ID - ja serierne må endda være blandet på kryds og tværs i tabellen.

1 - 12-12-2002
2 - 13-12-2001
3 - 12-12-2002
7 - 13-12-2001

osv.
Avatar billede dsjk Novice
14. april 2002 - 10:34 #10
coltau> Tak, det virker der var kun lige en enkelt rettelse.
Når jeg skulle finde forrige, fandt den den første i serien, så jeg tilføjede "ORDER BY ID DESC" og så virkede det.
Har også testet det ved at fjerne et idnr.
Det virker. Tak for hjælpen.

dsjk
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