webForumDet fria alternativet

Paging-probs

7 svar · 348 visningar · startad av k0ffe

k0ffeMedlem sedan maj 2003352 inlägg
#1

Hejsan

Jag har ett bildarkiv, där jag vidare vill visa en bild i taget med hjälp av paging.

Den här koden har jag, men lyckas inte få det rätt :(

RS.pagesize = 1 
bild = Request.QueryString("bild") 

if RS.EOF then 
Response.write "Det finns inga poster att hämta i databasen" 
Else 

RS.AbsolutePage = bild 
totalPages = RS.PageCount 

fldcounter = fldcounter + 1 

i = 0 
For i = 1 to RS.PageCount 

If (Int(i)) = (Int(bild)) then 
Response.write "<b>"& i &"</b> |&nbsp;" 
Else 
Response.write "<a href=?AID=" & RS2("AID") & "&bild="& i &">"& i &"</a> |&nbsp;" 
End If 
Next 

If bild = 1 then 
Response.write "föregående" 
Response.write "&nbsp;" 
Response.write "| <a href=?AID=" & RS2("AID") & "&bild=" & bild + 1 &" >nästa</p></a>" 

ElseIf (Int(totalPages)) = (Int(bild)) then 
Response.write "<a href=?AID=" & RS2("AID") & "&bild=" & bild - 1 &" >föregående</a>" 
Response.write "&nbsp;" 
Response.write "| nästa" 

Else 
Response.write "<a href=?AID=" & RS2("AID") & "&bild=" & bild - 1 &" >föregående</a>" 
Response.write "&nbsp;" 
Response.write "| <a href=?AID=" & RS2("AID") & "&bild=" & bild + 1 &" >nästa</a>" 
End If 

%>

Den fungerar till viss del, men när man är på sista bilden i respektive galleri så ska man itne kunna gå vidare.

ElseIf (Int(totalPages)) = (Int(bild)) then 
Response.write "<a href=?AID=" & RS2("AID") & "&bild=" & bild - 1 &" >föregående</a>" 
Response.write "&nbsp;" 
Response.write "| nästa"

Som det är nu kan man fortsätta trycka nästa resp föregående genom ALLA bilder genom alla bildarkiv.

Sen vill jag inte att alla bilder ska skrivas ut som länkar:
"1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | föregående | nästa "

Utan " bild 5 av 9 föregående | nästa"

Förstår ni mitt problem?
Tack på förhand.

k0ffeMedlem sedan maj 2003352 inlägg
#2

*suck*

joel_joel88Medlem sedan nov. 20021 222 inlägg
#3

testa detta med problemet att man kan fortsätta att trycka...

ElseIf (Int(totalPages)) >= (Int(bild)) then 
Response.write "<a href=?AID=" & RS2("AID") & "&bild=" & bild - 1 &" >föregående</a>" 
Response.write " " 
Response.write "| nästa"

om du ska skriva ut "bild 5 av 9 föregående | nästa" så skriv så här, tror att det ska fungera


i = 0 
For i = 1 to RS.PageCount 

If (Int(i)) = (Int(bild)) then 
Response.write "<b>"& i &"</b> | " 
Else 
Response.write "<a href=?AID=" & RS2("AID") & "&bild="& i &">" & rs.pagecount & " av  " & rs.absolutpage & "</a> | " 
End If 
Next 

Next
k0ffeMedlem sedan maj 2003352 inlägg
#4

Nej inget av det hjälper mig...
Jag tänkte göra på ett annat sätt;
I Querystring har jag bilden, vi säger bild=22.
Då är den aktuella bilden som visas alltså nr 22.
Kan man inte på något sätt köra en for-sats för att räkna från 1 och framåt tills dess att bildens ID är samma som ID:t i Querystringen, och på så sätt få bildens "visa-nummer"?

T.ex:

for nr=1 to RS.PageCount
 
 response.write "Bild-ID" & RS("ID") &" och nummer" & nr & "<br>"
 while not RS("ID")=Request.QueryString("bild")
 Rs.MoveNext
 wend

 next

Nån som förstår?

k0ffeMedlem sedan maj 2003352 inlägg
#5

INGEN?

joel_joel88Medlem sedan nov. 20021 222 inlägg
#6

vad händer när du kör for-satsen?

J.N.Medlem sedan apr. 20031 660 inlägg
#7

HEJ!

Jag har inte satt mig in i koden, men det är ju endast att kolla så att nästa sida inte är större än den befintligt siffran, ungefär.

Skriv ut diverse variabler, tänk, och sätt en if-sats runt framåt-texten.
Har du inte motsvarande bakåt, eller då går den till den sista sidan korrekt?

k0ffeMedlem sedan maj 2003352 inlägg
#8

NEver mind, det är löst.
Om ni är intresserade så löste jag det helt enkelt såhär:

IF NOT Request.Querystring ("bild") = "" THEN 
			  
			  Set RS3 = Server.CreateObject("ADODB.Recordset")
SQL = "SELECT * FROM bilder WHERE ID = " & Request.QueryString("bild")
RS3.Open SQL, Connection, adOpenStatic, adLockOptimistic

RS.pagesize = 1 
bild = Request.QueryString("bild") 

dim nr
nr=1

do until int(bild) = int(RS("ID"))
RS.MoveNext
nr=nr+1
loop

totalPages = RS.PageCount 
fldcounter = fldcounter + 1 %>

För "bild x av z" :

              
Response.Write "Bild <b>" & nr & "</b> av <b>" & RS.PageCount & "</b>"

Och för "nästa":

If (Int(nr)) = 1 then 
Response.write "<a href=?AID=" & RS2("AID") & "&bild=" & bild + 1 &" >nästa</p></a>" 

ElseIf (Int(totalPages)) = (Int(nr)) then 
Response.write "nästa" 

Else 
Response.write "<a href=?AID=" & RS2("AID") & "&bild=" & bild + 1 &" >nästa</a>" 
End If%>

Osv...

133 ms totalt · 3 externa anrop · v20260731065814-full.86db40fa
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
130 ms — hämta tråd, inlägg och bilagor (db)