webForumDet fria alternativet

Pagin

13 svar · 318 visningar · startad av Ivar

IvarMedlem sedan aug. 2002218 inlägg
#1
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
%>
IvarMedlem sedan aug. 2002218 inlägg
#2
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
%>
Jesper TMedlem sedan nov. 20017 144 inlägg
#3

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%>
IvarMedlem sedan aug. 2002218 inlägg
#4
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.
Jesper TMedlem sedan nov. 20017 144 inlägg
#5

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å?

IvarMedlem sedan aug. 2002218 inlägg
#6
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
%>
Jesper TMedlem sedan nov. 20017 144 inlägg
#7

Du måste väl också ha "categori" i q.s också.

Response.Write "<A href='" & strScriptName &"&categori="
osv...
IvarMedlem sedan aug. 2002218 inlägg
#8
Hmm förstår inte riktigt vad du menar det är ju länk till lista ut alla sidnummer?
Jesper TMedlem sedan nov. 20017 144 inlägg
#9

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.

IvarMedlem sedan aug. 2002218 inlägg
#10
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
solbulleMedlem sedan mars 20015 287 inlägg
#11

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?

IvarMedlem sedan aug. 2002218 inlägg
#12

Ja Solbulle det funkar som det ska.

solbulleMedlem sedan mars 20015 287 inlägg
#13

Kanonbra! :)

IvarMedlem sedan aug. 2002218 inlägg
#14

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.

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