Hej!
Behöver hjälp med pagin. Kan någon snäll själ implementera denna pagin kod så skula jag vara tacksam.
Kod:
'## -- hur många inlägg ska visas per sida --
intPageSize = 5
'## -- vilken sida ska visas --
intPage = Request.QueryString("page")
'## -- om ingen querystring med sidvärde hittas, visa då första sidan --
If intPage = "" Then intPage = 1
Function HE(str)
If Len(Trim(str & "")) = 0 Then Exit Function
HE = Server.HTMLEncode(str)
End Function
'## -- hur många poster ska visas per sida --
senaste.PageSize = intPageSize
'## -- öppna och hämta alla records --
senaste.Open query, Connect, 3, 1 'Osäker på: , 3, 1
If senaste.EOF Then
Response.Write "Det finns inga inlägg."
Else
'## -- vilken sida i recordset uppdelningen ska visas --
senaste.AbsolutePage = intPage
'## -- hur många sidor finns i recordset uppdelningen --
intTotalPages = senaste.PageCount
'## -- lista alla inlägg som finns i db --
Do Until senaste.EOF or intRecordCount >= intPageSize
intRecordCount = intRecordCount + 1
senaste.MoveNext
Loop
End If
'## -- clean up --
senaste.Close
Set senaste= Nothing
Connect.Close
Set Connect= Nothing
'## -- visa sidnavigeringen --
'## -- intPage = vilken sida som ska visas --
'## -- intTotalPages = hur många sidor som recordsetet är uppdelat i --
Call PageNavigation(intPage, intTotalPages)
'## -- skapa sid-navigering --
Sub PageNavigation(ByVal WichPage, ByVal HowManyPages)
Dim strScriptName
'## -- vilken sida ska navigeringen länka till --
strScriptName = Request.ServerVariables("SCRIPT_NAME")
'## -- visa föregående, länkat eller olänkat beroende på vilken sida som visas --
If CInt(WichPage) > 1 Then
Response.Write "<A href='" & strScriptName & "?" & _
"page=" & WichPage - 1 & "'><< Föregående</A> "
Else
Response.Write "<< Föregående "
End If
'## -- lista ut alla sidnummer --
For I = 1 To HowManyPages
If CInt(WichPage) <> I Then
Response.Write "<A href='" & strScriptName & "?" & _
"page=" & I& "'>" & I & "</A> "
Else
Response.Write "[ <B>" & I & "</B> ]"
End If
Next
'## -- visa Nästa, länkad eller olänkad beroende på vilken sida som visas --
If CInt(WichPage) < CInt(HowManyPages) Then
Response.Write "<A href='" & strScriptName & "?" & _
"page=" & WichPage + 1 & "'>Nästa >>"
Else
Response.Write "Nästa >>"
End If
End Sub
%>
[B]Fungerande kod men utan pagin[/B]
<%
dim connect, classifieds, query, category
category = trim(request("category"))
if ("category") = "" then
Response.write "Ingen categori vald.<p>"
else
set connect = server.createobject("ADODB.connection")
Connect.Open "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & Server.MapPath("db/annonser.mdb") & ";pwd=;"
query = "select id,item,price,stad,datecreated from items "
query = query & "where category='" & category & "' Order by datecreated DESC"
set classifieds = connect.execute(query)
%>
<font size="4"><b>
<% if category="categori1" then %>
<%=categori1%>
<% elseif category="categori2" then %
<%=categori2%>
<% elseif category="categori3" then %>
<%=categori3%>
<% elseif category="categori4" then %>
<%=categori4%>
<% elseif category="categori5" then %>
<%=categori5%>
<% end if %>
</b></font>
<table border=0 bgcolor=#FFFFFF width=100% cellspacing=0 cellpadding=0 bordercolor=#FFFFFF align="center">
<tr bgcolor="#CCCCCC">
<th align=left width="35%">Föremål</th>
<th align=left width="18%">Pris</th>
<th align=left width="24%">Stad</th>
<th align=left width="23%">Datum</th>
</tr>
<% do while not classifieds.EOF %>
<tr>
<td width="35%"> <a href=detail.asp?item=<%=classifieds("id")%>> <%=classifieds("item")%></a></td>
<td width="18%"><%=classifieds("price")%></td>
<td width="24%"><%=classifieds("stad")%></td>
<td width="23%"><%=classifieds("datecreated")%></td>
</tr>
<% classifieds.movenext
loop
end if
%>
Pagin
13 svar · 318 visningar · startad av Ivar
Ok nu har jag försökt att implementera Pagin men det funkar inte riktigt
Går ej att bläddra i vald kategori.
Kanske ni kan se felet?
<%
Dim connect, query, senaste,category,id
category = trim(request("category"))
if ("category") = "" then
Response.write "Ingen categori vald.<p>"
else
'## -- hur många inlägg ska visas per sida --
intPageSize = 20
'## -- vilken sida ska visas --
intPage = Request.QueryString("page")
'## -- om ingen querystring med sidvärde hittas, visa då första sidan --
If intPage = "" Then intPage = 1
Function HE(str)
If Len(Trim(str & "")) = 0 Then Exit Function
HE = Server.HTMLEncode(str)
End Function
set connect = server.createobject("ADODB.connection")
Connect.Open "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & Server.MapPath("db/annonser.mdb") & ";pwd=;"
Set senaste = Server.CreateObject("ADODB.Recordset")
query = "SELECT * FROM items "
query = query & "where category='" & category & "' Order by datecreated DESC"
%>
<font size="4"><b>
<% if category="categori1" then %>
<%=categori1%>
<% elseif category="categori2" then %>
<%=categori2%>
<% elseif category="categori3" then %>
<%=categori3%>
<% elseif category="categori4" then %>
<%=categori4%>
<% elseif category="categori5" then %>
<%=categori5%>
<%end if%>
<%
'## -- hur många poster ska visas per sida --
senaste.PageSize = intPageSize
'## -- öppna och hämta alla records --
senaste.Open query, Connect, 1, 3
If senaste.EOF Then
Response.Write "Det finns inga inlägg."
Else
'## -- vilken sida i recordset uppdelningen ska visas --
senaste.AbsolutePage = intPage
'## -- hur många sidor finns i recordset uppdelningen --
intTotalPages = senaste.PageCount
'## -- lista alla inlägg som finns i db --
Do Until senaste.EOF or intRecordCount >= intPageSize
intRecordCount = intRecordCount + 1
Response.Write "<tr><td><img src=""bilder/" & senaste("fileName") & """ height='10' width='10'>"
response.write "<td><font size='2'><a href=""detail.asp?item=" & senaste("id") & """>" & senaste("item") & "</a>"
response.write "<td><font size='2'> kategori:"
Response.write eval(senaste("category"))
response.write "<td><td><font size='2'>Datum:" & senaste("datecreated") & ""
response.write "<td><font size='2'>Stad:" & senaste("stad") & ""
response.write "<td><font size='2'color=#FF0000>Pris:</font>" & senaste("price") & " Kr </td></font></tr> "
senaste.MoveNext
Loop
End If
'## -- clean up --
senaste.Close
Set senaste= Nothing
Connect.Close
Set Connect= Nothing
'## -- visa sidnavigeringen --
'## -- intPage = vilken sida som ska visas --
'## -- intTotalPages = hur många sidor som recordsetet är uppdelat i --
Call PageNavigation(intPage, intTotalPages)
'## -- skapa sid-navigering --
Sub PageNavigation(ByVal WichPage, ByVal HowManyPages)
Dim strScriptName
'## -- vilken sida ska navigeringen länka till --
strScriptName = Request.ServerVariables("SCRIPT_NAME")
'## -- visa föregående, länkat eller olänkat beroende på vilken sida som visas --
If CInt(WichPage) > 1 Then
Response.Write "<A href='" & strScriptName & "?" & _
"page=" & WichPage - 1 & "'><< Föregående</A> "
Else
Response.Write "<< Föregående "
End If
'## -- lista ut alla sidnummer --
For I = 1 To HowManyPages
If CInt(WichPage) <> I Then
Response.Write "<A href='" & strScriptName & "?" & _
"page=" & I & "'>" & I & "</A> "
Else
Response.Write "[ <B>" & I & "</B> ]"
End If
Next
'## -- visa Nästa, länkad eller olänkad beroende på vilken sida som visas --
If CInt(WichPage) < CInt(HowManyPages) Then
Response.Write "<A href='" & strScriptName & "?" & _
"page=" & WichPage + 1 & "'>Nästa >>"
Else
Response.Write "Nästa >>"
End If
End Sub
End if
%>
Det är jobbigt att titta igenom din långa kod, vad blir felet? Vad händer/händer inte? osv..
Denna del ser konstig ut också, vad har du i variablerna
categori1 osv? Det skulle kanske vara smidigare med "select case" istället. Du har allt för många <% och %>!
<% if category="categori1" then %>
<%=categori1%>
<% elseif category="categori2" then %>
<%=categori2%>
<% elseif category="categori3" then %>
<%=categori3%>
<% elseif category="categori4" then %>
<%=categori4%>
<% elseif category="categori5" then %>
<%=categori5%>
<%end if%>
Jag har försökt med select case men det blir samma sak.
variablerna category
categori1 = "Bilar"
categori2 = "Bildelar"
categori3 = "Data"
categori4 = "Annat"
categori5 = "Köpes"
exempel på select case
select case senaste("category")
case "categori1"
response.write categori1
case "categori2"
response.write categori2
case "categori3"
response.write categori3
case "categori4"
response.write categori4
case "categori5"
response.write categori5
end select
Alltså när jag väljer kategori BILAR eller annat så man kan inte bläddra till page 2, page 3
Å så vidare.
Till en början kan du ju ändra detta:
if ("category") = "" then
till
if category = "" then
Alltså när jag väljer kategori BILAR eller annat så man kan inte bläddra till page 2, page 3
Å så vidare.
Har du både med querystringen "page" samt "categori" i din "länk" då?
Hej Jesper T så ser det ut nu men fortvarande fel!
<%
Dim connect, query, senaste,category,id,page
category = trim(request("category"))
if category = "" then
Response.write "Ingen categori vald.<p>"
else
'## -- hur många inlägg ska visas per sida --
intPageSize = 20
'## -- vilken sida ska visas --
intPage = Request.QueryString("Page")
'## -- om ingen querystring med sidvärde hittas, visa då första sidan --
If intPage = "" Then intPage = 1
Function HE(str)
If Len(Trim(str & "")) = 0 Then Exit Function
HE = Server.HTMLEncode(str)
End Function
set connect = server.createobject("ADODB.connection")
Connect.Open "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & Server.MapPath("db/annonser.mdb") & ";pwd=;"
Set senaste = Server.CreateObject("ADODB.Recordset")
query = "SELECT * FROM items "
query = query & "where category='" & category & "' Order by datecreated DESC"
select case Request.QueryString("category")
case "categori1"
response.write categori1
case "categori2"
response.write categori2
case "categori3"
response.write categori3
case "categori4"
response.write categori4
case "categori5"
response.write categori5
end select
'## -- hur många poster ska visas per sida --
senaste.PageSize = intPageSize
'## -- öppna och hämta alla records --
senaste.Open query, Connect, 1, 3
If senaste.EOF Then
Response.Write "Det finns inga inlägg."
Else
'## -- vilken sida i recordset uppdelningen ska visas --
senaste.AbsolutePage = intPage
'## -- hur många sidor finns i recordset uppdelningen --
intTotalPages = senaste.PageCount
'## -- lista alla inlägg som finns i db --
Do Until senaste.EOF or intRecordCount >= intPageSize
intRecordCount = intRecordCount + 1
Response.Write "<tr><td><img src=""bilder/" & senaste("fileName") & """ height='10' width='10'>"
response.write "<td><font size='2'><a href=""detail.asp?item=" & senaste("id") & """>" & senaste("item") & "</a>"
response.write "<td><font size='2'> kategori:"
Response.write eval(senaste("category"))
response.write "<td><td><font size='2'>Datum:" & senaste("datecreated") & ""
response.write "<td><font size='2'>Stad:" & senaste("stad") & ""
response.write "<td><font size='2'color=#FF0000>Pris:</font>" & senaste("price") & " Kr </td></font></tr> "
senaste.MoveNext
Loop
End If
'## -- clean up --
senaste.Close
Set senaste= Nothing
Connect.Close
Set Connect= Nothing
'## -- visa sidnavigeringen --
'## -- intPage = vilken sida som ska visas --
'## -- intTotalPages = hur många sidor som recordsetet är uppdelat i --
Call PageNavigation(intPage, intTotalPages)
'## -- skapa sid-navigering --
Sub PageNavigation(ByVal WichPage, ByVal HowManyPages)
Dim strScriptName
'## -- vilken sida ska navigeringen länka till --
strScriptName = Request.ServerVariables("SCRIPT_NAME")
'## -- visa föregående, länkat eller olänkat beroende på vilken sida som visas --
If CInt(WichPage) > 1 Then
Response.Write "<A href='" & strScriptName & "?" & _
"page=" & WichPage - 1 & "'><< Föregående</A> "
Else
Response.Write "<< Föregående "
End If
'## -- lista ut alla sidnummer --
For I = 1 To HowManyPages
If CInt(WichPage) <> I Then
Response.Write "<A href='" & strScriptName & "?" & _
"page=" & I & "'>" & I & "</A> "
Else
Response.Write "[ <B>" & I & "</B> ]"
End If
Next
'## -- visa Nästa, länkad eller olänkad beroende på vilken sida som visas --
If CInt(WichPage) < CInt(HowManyPages) Then
Response.Write "<A href='" & strScriptName & "?" & _
"page=" & WichPage + 1 & "'>Nästa >>"
Else
Response.Write "Nästa >>"
End If
End Sub
End if
%>
Du måste väl också ha "categori" i q.s också.
Response.Write "<A href='" & strScriptName &"&categori="
osv...
Hmm förstår inte riktigt vad du menar det är ju länk till lista ut alla sidnummer?
Ivar skrev:
Hmm förstår inte riktigt vad du menar det är ju länk till lista ut alla sidnummer?
Ja, men du måste ha kategorin där också, annars så måste du lägga kategroin i en kaka eller i en session eller så.
:i Använd endast [kod]-taggarna när du skriver kod.
Tack Jesper T för hjälpen men felet var i den här koden:
category = trim(request("category"))
if category = "" then
Response.write "Ingen categori vald.<p>"
Else
query = query & "where category='" & category & "' Order by datecreated DESC"
Jag byte ut mot den här:
query = "1"
If (Request.QueryString("Category") <> "") Then
query = Request.QueryString("Category")
End If
query = "SELECT * FROM items WHERE Category >= '" + Replace(query, "'", "''") + "' ORDER BY dateCreated DESC"
MVH /Ivar
Nu när du väljer tex kategori bilar och får upp säg tre sidor, fungerar det då när du följer länken till sida 2 samt 3?
Ja Solbulle det funkar som det ska.
Kanonbra! :)
Solbulle har du någon script som typ förhandsgranskning.
Från formuläret till en sida som man kan se hur det kommer att se ut och om allting är OK så skickas vidare därifrån till databasen. typ som på webforumet.