Hej!
Den här kodsnutten slupar 1 bild i en mapp...
Men jag skulle vilja ha två knapar, en "nästa bild" och en föregående...går det att lösa på något vis??
<%
Set FSO = Server.CreateObject("Scripting.FileSystemObject")
Set Mapp = FSO.GetFolder(Server.MapPath("foton/"))
If Mapp.Files.Count = 0 Then
Response.Write "Inga bilder inlagda än!"
Else
For Each File In Mapp.Files
If right( File.Name, 3 ) = "jpg" then
strImage = strImage & File.Name &";"
end if
Next
arrImages = Split(strImage, ";")
End If
If IsArray(arrImages) Then
randomize
rndNumber = Int(Rnd * UBound(arrImages))
Response.Write "<a href=""default.asp?page=2""><img src=""foton/"& arrImages(rndNumber) &""" width=""380"" height=""285""></a>"
End If
%>
Tjena Paddan, vet inte riktigt hur det går att lösa i din kod men du kanske kan skicka en Request.Querystring.
Här kommer en kod förändring så tre bilder visas, föregående - Huvud - Nästa
' Gör att om rndNumber träffar första filen, så skall nästa bild starta om från slutet
If Clng(rndNumber-1) = -1 Then : prevImg = Mapp.Files.Count-1 : Else prevImg = rndNumber-1 : End if
Response.Write "<a href=""default.asp?page=2""><img src=""foton/"& arrImages(prevImg) &""" width=""380"" height=""285""></a>"
Response.Write "<a href=""default.asp?page=2""><img src=""foton/"& arrImages(rndNumber) &""" width=""380"" height=""285""></a>"
' Gör att om rndNumber träffar sista filen, så skall nästa bild starta om från början
If rndNumber+1 = Mapp.Files.Count Then : nextImg = 0 Else nextImg = rndNumber+1 : End if
Response.Write "<a href=""default.asp?page=2""><img src=""foton/"& arrImages(nextImg) &""" width=""380"" height=""285""></a>"
Nu gör det så att den slumpar slå länge man inte gått till föregående eller nästa bild.
If IsArray(arrImages) Then
randomize
rndNumber = Int(Rnd * UBound(arrImages))
strImage = Clng(Request.QueryString("img"))
If Request.QueryString("img") = "" Then : strImage = rndNumber+1 : End if
If Request.QueryString("img") = "" Then : MainImg = arrImages(rndNumber) : Else MainImg = arrImages(strImage-1) : End If
' Gör att om rndNumber träffar första filen, så skall nästa bild blid start om från slutet
If strImage-1 = 0 Then : prevImg = Mapp.Files.Count : Else prevImg = strImage-1 : End if
Response.Write "<a href=""default.asp?page=2""><img src=""foton/"& MainImg &""" width=""380"" height=""285""></a>"
' Gör att om rndNumber träffar sista filen, så skall nästa bild blid start om från början
If strImage = Mapp.Files.Count Then : nextImg = 1 Else nextImg = strImage+1 : End if
If Request.QueryString("img") = "" Then : ImageValue = rndNumber+1 : Else ImageValue = strImage : End If
Response.Write "<br>"
Response.Write "<a href='test.4.asp?img="&prevImg&"'>Föregående</a>"
Response.Write " [Bild "& ImageValue &"] "
Response.Write "<a href='test.4.asp?img="&nextImg&"'>Nästa</a>"
End If
Har lekt lite till och gjort en ny förändring och lagt till dina knappar, nu kvarstår endast problemet med att när sidan skall reload så finns det värde i POST och reloaden funkar inte som den skall.
Annars
If IsArray(arrImages) Then
randomize
rndNumber = Int(Rnd * UBound(arrImages))
If NOT Request.Form("StringPrevImg") = "" THEN
strImage = Request.Form("StringPrevImg")
Else
strImage = Request.Form("StringNextImg")
End if
If strImage = "" Then : strImage = rndNumber+1 : End if
If strImage = "" Then : MainImg = arrImages(rndNumber) : Else MainImg = arrImages(strImage-1) : End If
' Gör att om rndNumber träffar första filen, så skall nästa bild blid start om från slutet
If Clng(strImage-1) = 0 Then : prevImg = Mapp.Files.Count : Else prevImg = strImage-1 : End if
Response.Write "<a href=""default.asp?page=2""><img src=""foton/"& MainImg &""" width=""380"" height=""285""></a>"
' Gör att om rndNumber träffar sista filen, så skall nästa bild blid start om från början
If Clng(strImage) = Mapp.Files.Count Then : nextImg = 1 Else nextImg = strImage+1 : End if
If strImage = "" Then : ImageValue = rndNumber+1 : Else ImageValue = strImage : End If
Response.Write "<div style='float:left;'><form method='POST' action='test.4.asp'>"&_
"<input type='hidden' name='StringPrevImg' value='"& prevImg &"'>"&_
"<input type='submit' value='Föregående' name='submit'></form></div>"
Response.Write "<div style='float:left;'><form method='POST' action='test.4.asp'> [Bild "& ImageValue &"] </div>"
Response.Write "<div style='float:left;'><form method='POST' action='test.4.asp'>"&_
"<input type='hidden' name='StringNextImg' value='"& nextImg &"'>"&_
"<input type='submit' value='Nästa' name='submit'></form></div>"
End If
Tänken är ju att det skall slumpning på bilderna varje gång någon kör en reload, men då man trycker på nästa så skall den vandra med variabel +1 eller -1.