Avatar billede loukas Mester
20. december 2003 - 17:20 Der er 9 kommentarer og
1 løsning

page et array

jeg har et array med x værdier f.eks 100.
jeg vil gerne have det skrevet ud på min side med 10 værdier på hver side, og links til side 1-2-3 osv.
Avatar billede thesurfer Nybegynder
20. december 2003 - 17:33 #1
if isNumeric(request.querystring("side")) then
  start = request.querystring("side")
else
  start = 1
end if

for i = start to (start + 9)
  response.write "Nr.: " & i & "<br>"
next

response.write "<a href='?side=" start + 9 & "'>Næste side</a>"

Eller noget i den stil.
Avatar billede deeflate Nybegynder
21. december 2003 - 12:29 #2
Jeg har lige lavet et testarray. Det skifter du selvfølgelig bare ud med dit eget...

<%
Dim arrTest(80)

For i=0 to UBound(arrTest)-1
  arrTest(i) = i
Next

If request.querystring("side") = "" Then
  side = 1
else
  side = CInt(request.querystring("side"))
end if

antalPrSide = 10
total = UBound(arrTest)

If (total/antalPrSide) = (int(total/antalPrSide)) Then
  antalSider = int(total/antalPrSide)
Else
  antalSider = int(total/antalPrSide)+1
End If

response.Write antalSider

For i = 1 to antalSider
  if i = side Then
    response.Write i & "  |"
  else
    response.Write "<a href='?side=" & i & "'>" & i & "</a>  |  "
  end if
next

a = (side * antalPrSide) - antalPrSide

For i = 1 to antalPrSide
  If not (a > total) Then
    response.Write arrTest(a) & "<br>"
    a = a+1
  End if
Next

%>
Avatar billede thesurfer Nybegynder
21. december 2003 - 12:35 #3
deeflate>
If request.querystring("side") = "" Then
  side = 1
else
  side = CInt(request.querystring("side"))
end if

hvad så hvis der står "?side=helloworld" ?
Så tager du CInt("helloworld") og det giver et lille problem.. :)

Derfor brugte jeg "isNumeric": if isNumeric(request.querystring("side")) then

Gad vide om noget er numerisk når det er ingenting, dvs "?side="..
Avatar billede deeflate Nybegynder
21. december 2003 - 13:08 #4
Det er det vist ikke.

Og det er vel ikke så sandsynligt, at der er tekst i querystringen, da vi jo selv putter værdien i?
Og hvis brugeren retter i den, så er han/hun selv ude om, at det ikke virker ;)

Men her er alligevel min løsning med din rettelse (jeg har lige kommenteret lidt også):


<%
'mit testarray
Dim arrTest(80)

'testarrayet assignes testværdier
For i=0 to UBound(arrTest)-1
  arrTest(i) = i
Next

'hvis der er et sidetal i querystringen, bruger vi det
'ellers er siden 1
if isNumeric(request.querystring("side")) then
  side = CInt(request.querystring("side"))
else
  side = 1
end if

'antal værdier, der skal vises hver side
antalPrSide = 10

'total antal værdier
total = UBound(arrTest)

'find antal sider
'hvis det er heltal anvendes det som det er, ellers lægges 1 til
If (total/antalPrSide) = (int(total/antalPrSide)) Then
  antalSider = int(total/antalPrSide)
Else
  antalSider = int(total/antalPrSide)+1
End If

'udskriver side og antal sider
response.Write "side " & side & " af " & antalSider & "  -  "

For i = 1 to antalSider
  if i = side Then
    'hvis det er den side, man står på udskrives sidetal (uden link)
    response.Write i & "  |"
  else
    'udskriver links til andre sider
    response.Write "<a href='?side=" & i & "'>" & i & "</a>  |  "
  end if
next

response.write "<br><br>"

'startværdi på siden
a = (side * antalPrSide) - antalPrSide

'udskrivning af værdier
For i = 1 to antalPrSide
  If not (a > total) Then
    response.Write arrTest(a) & "<br>"
    a = a+1
  End if
Next

%>
Avatar billede loukas Mester
21. december 2003 - 23:02 #5
deeflate >> tak for din løsning, men..
jeg får en fejl
Subscript out of range



'udskrivning af værdier
For i = 1 to antalPrSide
  If not (a > total) Then
    response.Write arrTest(a) & "<br>"  <-------HER------
    a = a+1
  End if
Next
Avatar billede deeflate Nybegynder
21. december 2003 - 23:08 #6
hmm... a er -10 første gang scriptet kører...
Jeg ser lige på det...
Avatar billede deeflate Nybegynder
21. december 2003 - 23:10 #7
Ok, har fundet fejlen

Det skyldes den rettelse fra thesurfer

Skift

if isNumeric(request.querystring("side")) then

ud med

if isNumeric(request.querystring("side")) and request.querystring("side") <> "" then
Avatar billede deeflate Nybegynder
21. december 2003 - 23:11 #8
Det lader altså til at ingenting ER numerisk alligevel ;)
Avatar billede thesurfer Nybegynder
21. december 2003 - 23:21 #9
hehehe :)
Avatar billede deeflate Nybegynder
09. januar 2004 - 22:07 #10
Loukas >> Er der sket nyt i sagen?
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