Avatar billede hjemmeskoen Nybegynder
30. august 2006 - 19:20 Der er 12 kommentarer og
1 løsning

Ka' ik' gå tilbage, og bliver ved med at gå frem (Pagging)

Hej..
Jeg har mikset et pagging system, og det virker på en måde også fint, men er lige stødt på et mindre problem.
Det er bygget så smart op at man bare skal trykke på en knap, så går den EN side frem (den stopper når den er ved sidste side, så man ikke kan gå længere frem), eller på en anden knap, så går den EN side tilbage.

Problemet er så bare at når man er nået til sidste side, bliver den ved med at gøre sådan man kan gå en side frem, det vil sige at den kommer hen til en side der ikke eksisterer.
Ikke nok med det så er det heller ikke muligt at gå tilbage igen, den knap er simpelthen deaktiveret på en eller anden måde.

Jeg håber I kan hjælpe, her er koden:

Response.Write "<Center>"

intBillede = Request("Billede")
If isNumeric(intBillede) = False Or intBillede < 1 Then
  intBillede = 1
End If

Set objRS = Server.CreateObject("ADODB.RecordSet")

strSQL = "SELECT Sti FROM Billeder"
strDSN = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ="&Server.MapPath("/db/Database.mdb")

objRS.Open strSQL, strDSN, 1

If Not (objRS.BOF Or objRS.EOF) Then

  objRS.PageSize = 1
  objRS.AbsolutePage = intBillede
  intRecCount = objRS.PageSize
  intPageCount = objRS.PageCount

  Response.Write "Side <B>" & intBillede & "</B> af <B>" & intPageCount & "</B>"
  Response.Write "<Br>"
  Response.Write "<Br>"

  Do While Not objRS.EOF And intRecCount > 0

  Response.Write "<Img Src=""/Filer/" & objRS("Sti") & """>"

  intRecCount = intRecCount - 1
  objRS.MoveNext
  Loop

End If

objRS.Close
Set objRS = Nothing

Response.Write "<Br>"
Response.Write "<Br>"
Response.Write "Gå til side "
For intNum = 1 To intPageCount
  Response.Write "<A Href=""?Side=Vis&Billede=" & intNum & """>" & intNum & "</A>"
Next

Response.Write "<Br>"
Response.Write "<Br>"

If Clng(intSide) > 1 Then
  Response.Write "<A Href=""?Side=Vis&Billede=" & intBillede - 1 & """>&lt;&lt;</a>"
Else
  Response.Write "&lt;&lt;"
End If

Response.Write "&nbsp;"

If Clng(intSide) < Clng(intPageCount) Then
  Response.Write "<A Href=""?Side=Vis&Billede=" & intBillede + 1 & """>&gt;&gt;</A>"
Else
  Response.Write "&gt;&gt;"
End If

Response.Write "</Center>"

End If
Avatar billede kiddoe Nybegynder
30. august 2006 - 21:53 #1
hej, vil du have et andet paging script
Avatar billede kiddoe Nybegynder
30. august 2006 - 23:25 #2
Download: adovbs.inc - http://www.aspscript.dk/adovbs/adovbs.zip



<!-- #include file="inc/adovbs.inc" -->
<%
    Response.Write "<Center>"
    intBillede = Request.Querystring("billede")
    If Request.Querystring("billede") =< 0  Then
        intBillede = 1
        Else
        intBillede = CInt(Request.Querystring("billede"))
        End If

    Set objRS = Server.CreateObject("ADODB.RecordSet")
    objRS.CursorLocation = adUseClient
    objRS.PageSize = 1
   
    strSQL = "SELECT sti FROM billeder"
    strDSN = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ="&Server.MapPath("/db/database.mdb")
    objRS.Open strSQL, strDSN, 1
   
    intPageCount = objRS.PageCount
    'intRecCount = objRS.PageSize
    If intBillede > intPageCount Then
    intBillede = intPageCount
    end if
   
    If Not objRS.EOF Then
    objRS.AbsolutePage = intBillede
    Response.Write "Side <B>" & intBillede & "</B> af <B>" & intPageCount & "</B>"
    Response.Write "<Br>"
    Response.Write "<Br>"
   
    Do While objRS.AbsolutePage = intBillede And Not objRS.EOF
    Response.Write "<Img Src=""/Filer/" & objRS("Sti") & """>"
    objRS.MoveNext
      Loop
   
    End If
   
    If intPageCount > 0 Then
    Response.Write "<Br>"
    Response.Write "<Br>"
    Response.Write "Gå til side: "
   
    For intNum = 1 To intPageCount
    Response.Write "<A Href=""?Side=Vis&Billede=" & intNum & """>" & intNum & "</A>"
    Next
    Response.Write "<Br>"
    Response.Write "<Br>"
   
    If intBillede <> 1 AND intBillede <> 0 Then
    Response.Write "<A Href=""?Side=Vis&Billede=" & intBillede - 1 & """>&lt;&lt;</a>"
    Else
    Response.Write "&lt;&lt;"
    End If
   
    Response.Write "&nbsp;"
   
    If intBillede < intPageCount Then
    Response.Write "<A Href=""?Side=Vis&Billede=" & intBillede + 1 & """>&gt;&gt;</A>"
    Else
    Response.Write "&gt;&gt;"
    End If
    End If
   
    Response.Write "</Center>"

    objRS.Close
    Set objRS = Nothing
%>
Avatar billede hjemmeskoen Nybegynder
31. august 2006 - 06:20 #3
ADODB.Recordset error '800a0bb9'

Arguments are of the wrong type, are out of acceptable range, or are in conflict with one another.

/TTT/Yes.asp, line 17


- Og linie 17 forlyder:

objRS.CursorLocation = adUseClient


Tak for hjælpen, ska' du da ha'!
Avatar billede kiddoe Nybegynder
31. august 2006 - 10:05 #4
har du husket at downloade adovbs.inc - og includere den

<!-- #include file="adovbs.inc" -->
Avatar billede hjemmeskoen Nybegynder
31. august 2006 - 14:41 #5
Så virker det sgu..

Men når jeg smider hele mit gallri sammen, så melder den fejl..
Filen ser sådan ud:

<!-- #include virtual="/_include/includes.asp" -->
<!-- #include virtual="/TTT/adovbs.inc" -->

<%

Call OpenDataBase

Session("Brugernavn") = "Kristian"
Session("IP") = Request.ServerVariables("Remote_Addr")


'*** Upload form - Start ***

Response.Write "<Form Action=""?Side=Upload"" Method=""Post"" Enctype=""Multipart/form-data"">"

Response.Write "Sti:"
Response.Write "<Br>"
Response.Write "<Input Type=""File"" Size=""30"" Name=""Sti"">"
Response.Write "<Br>"
Response.Write "Beskrivelse:"
Response.Write "<Br>"
Response.Write "<Textarea Type=""Text"" Name=""Beskrivelse"" Rows=""8"" Cols=""27""></Textarea>"
Response.Write "<Br>"
Response.Write "<Br>"
Response.Write "<Input Type=""Submit"" Value=""Upload.."">"

Response.Write "</Form>"

'*** Upload form - Slut ***

If Request.Querystring("Side") = "Upload" Then

'*** Upload - Start ***

Response.Expires = -180
Response.Buffer = True
Session.LCID = 1030

iFejl = 0

Set Upload = Server.CreateObject("Persits.Upload.1")

Upload.Save

Set File = Upload.Files("Sti")

If Not File Is Nothing Then

Filename = File.Filename

Filesize = File.Size
       
If Filesize > 102400 Then
iFejl = 1
strFejl = strFejl & "Filen må ikke fylde mere end 100 KB..<Br>"
End If

strBeskrivelse = Trim(Upload.Form("Beskrivelse"))

If Len(strBeskrivelse) <= 0 Then
iFejl = 1
strFejl = strFejl & "Du skal udfylde Beskrivelsen..<Br>"
End If

Filetype = File.ImageType

If LCase(FileType) <> "gif" And LCase(FileType) <> "jpg" And LCase(FileType) <> "jpeg" Then
iFejl = 1
strFejl = strFejl & "Filen <B>SKAL</B> være GIF eller JPG..<Br>"
End If

If Upload.FileExists(Server.MapPath("/Filer/" & Filename)) Then
iFejl = 1
strFejl = strFejl & "Der findes allerede en fil med det valgte navn - Vælg et andet..<Br>"
End If

Else
iFejl = 1
strFejl = strFejl & "Du skal vælge en fil..<Br>"

End If

If iFejl = 0 Then

File.SaveAs Server.MapPath("/Filer/" & File.Filename)

Sti = Upload.Files("Sti").FileName
Beskrivelse = FixTegn(Upload.Form("Beskrivelse"))
Brugernavn = Session("Brugernavn")
Dato = Now()
IP = Session("IP")

strSQL = "Insert Into Billeder (Sti, Beskrivelse, Brugernavn, Dato, IP) Values('" & Sti & "','" & Beskrivelse & "','" & Brugernavn & "','" & Dato & "','" & IP & "')"
objConn.Execute(strSQL)

Response.Redirect("?Side=Meddelse&Hvad=Filen er nu uploadet..")

End If

Set objUpload = Nothing

End If

'*** Upload - Slut ***

'*** Fejl - Start ***

If iFejl <> "" then

Response.Write "<b>Der er opstået en fejl:</b><br>"
Response.write "<i>" & strFejl & "</i><br><br>"
Response.Write "<a href=""java script:history.back();"">Tilbage</a>"

End if

'*** Fejl - Slut ***

If Request.Querystring("Side") = "Slet" Then

'*** Slet billede - Start ***

Fil = Request.QueryString("Sti")
Mappe = "/Filer/"

strSQL = "DELETE * FROM Billeder WHERE Sti = '" & Fil & "'"
objConn.Execute (strSQL)

Set Upload = Server.CreateObject("Scripting.FileSystemObject")
If (Upload.FileExists(Server.MapPath(Mappe & "/" & Fil)) = True) Then
Upload.DeleteFile(Server.MapPath(Mappe & "/" & Fil))
End If
Set Upload = Nothing

Response.Redirect("?Side=Meddelse&Hvad=Billedet blev nu slettet..")

End if

'*** Slet billede - Slut ***

If Request.Querystring("Side") = "VisAlle" Then

'*** Vis Alle - Start ***

strPageSize = 4 'antal billeder på hver linie

strSQL = "Select * From Billeder"
Set objRS = objConn.Execute(strSQL)

If objRS.EOF Then
Response.Write "Der er desværre ingen billeder endnu.."
Else

ArrBeskrivelse = ""
ArrUploaded = ""

objRS.Movefirst
Do While Not objRS.EOF

Beskrivelse = Beskrivelse & objRS("Beskrivelse") & ","
Dato = Dato & objRS("Dato") & ","

objRS.Movenext
Loop

ArrBeskrivelse = Split(Beskrivelse, ",")
ArrDato = Split(Dato, ",")

objRS.Movefirst

i = 0
Total = 0

Response.Write "<Table>"
Response.Write "<Tr>"

Do While Not objRS.EOF

i = i + 1
Total = Total + 1

Response.Write "<Td Width=""200"" Height=""200"">"
Response.Write "<A Href=""?Side=Vis&Sti=" & objRS("Sti") & """>"
Response.Write "<Img Width=""200"" Height=""200"" Border=""0"" Src=""/Filer/" & objRS("Sti") & """ Alt=""" & objRS("Beskrivelse") & """>"
Response.Write "</A>"
Response.Write "</Td>"

If i = strPageSize Then

Response.Write "</Tr>"
Response.Write "<Tr>"

iNummer = Cint(Total)-Cint(strPageSize)
For ie = 1 to strPageSize

Response.Write "<Td Width=""200"" Height=""200"">"

If ArrBeskrivelse(iNummer) = "" Then
Response.Write "Der er desværre ingen beskrivelse.."
Else
Response.Write ArrBeskrivelse(iNummer)
End if

Response.Write "<Br>"
Response.Write "Uploaded: " & ArrDato(iNummer) & ""
Response.Write "</Td>"

iNummer = iNummer + 1
next

Response.Write "</Tr>"
Response.Write "<Tr>"

i = 0

End if



'*** Vis Alle - Slut ***

If Request.Querystring("Side") = "Vis" Then

'*** Vis en enkel - Start ***

Response.Write "<Center>"
    intBillede = Request.Querystring("billede")
    If Request.Querystring("billede") =< 0  Then
        intBillede = 1
        Else
        intBillede = CInt(Request.Querystring("billede"))
        End If

    Set objRS = Server.CreateObject("ADODB.RecordSet")
    objRS.CursorLocation = adUseClient
    objRS.PageSize = 1
   
    strSQL = "SELECT sti FROM billeder"
    strDSN = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ="&Server.MapPath("/db/database.mdb")
    objRS.Open strSQL, strDSN, 1
   
    intPageCount = objRS.PageCount
    'intRecCount = objRS.PageSize
    If intBillede > intPageCount Then
    intBillede = intPageCount
    end if
   
    If Not objRS.EOF Then
    objRS.AbsolutePage = intBillede
    Response.Write "Side <B>" & intBillede & "</B> af <B>" & intPageCount & "</B>"
    Response.Write "<Br>"
    Response.Write "<Br>"
   
    Do While objRS.AbsolutePage = intBillede And Not objRS.EOF
    Response.Write "<Img Src=""/Filer/" & objRS("Sti") & """>"
    objRS.MoveNext
      Loop
   
    End If
   
    If intPageCount > 0 Then
    Response.Write "<Br>"
    Response.Write "<Br>"
    Response.Write "Gå til side: "
   
    For intNum = 1 To intPageCount
    Response.Write "<A Href=""?Side=Vis&Billede=" & intNum & """>" & intNum & "</A>"
    Next
    Response.Write "<Br>"
    Response.Write "<Br>"
   
    If intBillede <> 1 AND intBillede <> 0 Then
    Response.Write "<A Href=""?Side=Vis&Billede=" & intBillede - 1 & """>&lt;&lt;</a>"
    Else
    Response.Write "&lt;&lt;"
    End If
   
    Response.Write "&nbsp;"
   
    If intBillede < intPageCount Then
    Response.Write "<A Href=""?Side=Vis&Billede=" & intBillede + 1 & """>&gt;&gt;</A>"
    Else
    Response.Write "&gt;&gt;"
    End If
    End If
   
    Response.Write "</Center>"

    objRS.Close
    Set objRS = Nothing

End If

'*** Vis en enkel - Slut ***

If Request.Querystring("Side") = "Meddelse" Then

'*** Meddelse - Start ***

Hvad = Request.QueryString("Hvad")

Response.Write Hvad

End If

'*** Meddelse - Slut ***

Call CloseDataBase

%>


Og fejlen lyder:

Microsoft VBScript compilation error '800a03fb'

Expected 'Loop'

/TTT/index.asp, line 308



- Kan du hjælpe?
Og er filen adovbs.inc nødvendig, og hva' gør den?
Avatar billede kiddoe Nybegynder
31. august 2006 - 16:09 #6
øhh - prøv lige at rette -
--------------------------
iNummer = iNummer + 1
next
Response.Write "</Tr>"
Response.Write "<Tr>"
i = 0
End if
'*** Vis Alle - Slut ***
--------------------------
til
--------------------------
iNummer = iNummer + 1
objRs.movenext
loop
Response.Write "</Tr>"
Response.Write "<Tr>"
i = 0
End if
'*** Vis Alle - Slut ***
Avatar billede kiddoe Nybegynder
31. august 2006 - 17:09 #7
adovbs.inc, er Microsofts type bibliotek som omsætter en connection's eller recordset's parametre til ord istedet for tal,

ex. der bruger adovbs.inc

rs.Open strSQL, dbconn, adOpenStatic, adLockReadOnly

det kunne lige sågodt være

rs.Open strSQL, dbconn, 3, 1

I adovbs.inc ligger altså alle de parametre som anvendes i forbindelse med ADO database forbindelser, og jeg kan kun anbefale dig at begynde at benytte den.
Hvis du åbner filen kan du få et overblik over hvilke parametre der egentlig er, og det falder ligsom i øjnene at hvis man skulle huske alle de kryptiske talværdier bliver det uoverskueligt. Det er væsentligt nemmere at huske "beskrivene ord"

Du har i dit script følgende

objRS.CursorLocation = adUseClient

Åbner du adovbs.inc og finder

'---- CursorLocationEnum Values ----
Const adUseServer = 2
Const adUseClient = 3

- så kan du se at adUseClient har værdien 3
det vil sige at hvis du ikke vil bruge adovbs.inc så skriver du bare

objRS.CursorLocation = 3    'i stedet for og smider din adovbs.inc væk i en mappe.

Nu har jeg bare gjort mig det til vane at bruge ADO biblioteket

Du kan læse mere/ alt om ADO her http://www.w3schools.com/ado/
Den adovbs.inc du har er ikke den komplette. Den kan du hendte her http://www.aspscript.dk/ado/full_adovbs.zip

Prøv bare for sjov at fjerne linien, sæt ' foran, og se hvad der sker...
Avatar billede hjemmeskoen Nybegynder
31. august 2006 - 18:27 #8
Microsoft VBScript compilation error '800a040e'

'loop' without 'do'

/TTT/index.asp, line 209

loop
^

- Kommer fejlen til at hedde, så.
Avatar billede kiddoe Nybegynder
31. august 2006 - 22:15 #9
nåå ja din next hører jo til
For ie = 1 to strPageSize

prøv sådan her

iNummer = iNummer + 1
next
Response.Write "</Tr>"
Response.Write "<Tr>"
objRs.MoveNext
loop
i = 0
End if
'*** Vis Alle - Slut ***
Avatar billede hjemmeskoen Nybegynder
01. september 2006 - 09:52 #10
Samme fejl, desværre :(

Microsoft VBScript compilation error '800a040e'

'loop' without 'do'

/ttt/index.asp, line 212

loop
^
Avatar billede kiddoe Nybegynder
01. september 2006 - 18:30 #11
nå da hmm - der mangler jo også nogle End If
Så må det være sådan her
--------
iNummer = iNummer + 1
next
Response.Write "</Tr>"
Response.Write "<Tr>"
i = 0
End if
objRs.movenext
loop
End If
End If
Avatar billede hjemmeskoen Nybegynder
01. september 2006 - 18:53 #12
Så virker det..
Mange tak for hjælpen, du fortjener de points :o)

- God weekend..
Avatar billede kiddoe Nybegynder
01. september 2006 - 19:25 #13
I lige måde ;)
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