webForumDet fria alternativet
Logga in / Bli medlem

Pagin

ASP

13 svar · 318 visningar · startad av Ivar

Medlem sedan aug. 2002218 inlägg
Trådstart#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
%>
Medlem 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
%>
Medlem 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%>
Medlem 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.
Medlem 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å?

Medlem 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
%>
Medlem 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...
Medlem 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?
Medlem 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.

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

Medlem sedan aug. 2002218 inlägg
#12

Ja Solbulle det funkar som det ska.

Medlem sedan mars 20015 287 inlägg
#13

Kanonbra! :)

Medlem 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.

266 ms totalt · 4 externa anrop · v20260731065814-full.51f67c91
118 ms — deklarationer (db)
0 ms — hämta statistik (cache)
143 ms — hämta tråd, inlägg och bilagor (db)
120 ms — ändringar (db)