paging i søgeresultat
Jeg har dette script til at liste nogle produkter op fra en db. Dette er et paging system hvor jeg kan stille hvormange siden skal vise ad gangen, hvorefter man så får det velkendte system << 1 2 3 >>.<%
Page = Trim(Request(\"page\"))
If Page = \"\" Then Page = 1
Set myConn = Server.CreateObject(\"ADODB.Connection\")
myConn.Open \"DRIVER={Microsoft Access Driver (*.mdb)};DBQ=\"&Server.MapPath(\"../db/varer.mdb\")
strSQL = \"SELECT * FROM produkter where undergruppe_id=\" & Request.Querystring(\"Id\")
set rs = myconn.execute(strSQL)
Set rs = Server.CreateObject(\"ADODB.Recordset\")
rs.CursorType = adOpenStatic
rs.PageSize = 5
rs.Open(strSQL), myConn
If rs.eof then
response.write \"<center>Der er ingen varer i denne\"
response.write \"<br>varegruppe i øjeblikket</center>\"
response.end
Else
If Not rs.EOF Then
rs.AbsolutePage = cINT(Page)
rowCount = 0
End If
color = \"FFFFFF\"
lev = rs(\"leverandoer\")
%>
<form name=\"form1\" method=\"post\" action=\"\">
<table width=\"720\" border=\"1\" cellspacing=\"0\" cellpadding=\"0\" align=\"center\" bordercolor=\"#003366\" height=\"96\">
<tr>
<td>
<table width=\"737\" border=\"0\" cellspacing=\"0\" cellpadding=\"3\" align=\"center\">
<tr bgcolor=\"#003366\">
<td colspan=\"10\"><font face=\"Verdana, Arial, Helvetica, sans-serif\" size=\"2\" color=\"#FFFFFF\"><%= color %><%= undergruppe %></font></td>
</tr>
<tr bgcolor=\"#FFFFFF\">
<td colspan=\"3\">
<%
tmpFrom = ( ( CInt( Page ) - 1 ) * rs.PageSize ) + 1
tmpTo = Page * rs.PageSize
tmpTotal = rs.RecordCount
if tmpTotal <= tmpTo then
response.write \"Viser \" & tmpFrom & \" til \" & tmpTotal & \" af ialt \" & tmpTotal & \"<br>\"
else
response.write \"Viser \" & tmpFrom & \" til \" & tmpTo & \" af ialt \" & tmpTotal & \"<br>\"
end if
%>
</td>
<td colspan=\"7\">
<div align=\"right\">
<%
if( CInt( Page ) > 1 ) then
response.write \"<a href=\"\"produkter.asp?page=\" & ( CInt(page) - 1 )& \"&Id=\" & Request.Querystring(\"Id\") & \"\"\"><<</a> \"
end if
If rs.PageCount <> 1 Then
For i = 1 to rs.PageCount
if( i = CInt( Page ) ) then
response.write \"<b>\" & i & \"</font></b> \"
else
response.write \"<a href=\"\"produkter.asp?page=\" & i & \"&Id=\" & Request.Querystring(\"Id\") & \"\"\">\"& i &\"</a> \"
end if
Next
End If
if( CInt( Page ) < rs.PageCount ) then
response.write \"<a href=\"\"produkter.asp?page=\" & ( CInt(page) + 1 )& \"&Id=\" & Request.Querystring(\"Id\") & \"\"\">>></a> \"
end if
%>
Jeg har så lavet en søgefunktion som også gerne skulle virke med dette paging system. Men dette volder mig en del problemer. Jeg kan sagtens få vist den første side men når man trykker på 2 eller >> for at se den næste side går det galt. Er der nogle der kan hjælpe
<%
\' Henter værdien fra search.htm
strKeyword = Trim(Request.Form(\"Keyword\"))
\' Hvis der er skrevet i feltet
strKeyword = Replace(strKeyword,\"\'\",\"\'\'\")
\' Opbygger en dynamisk SQL streng
strSQL = \"SELECT Id, varenr, varebeskrivelse, stor_beskrivelse, udsalgspris_incl_moms, leverandoer, indkoebspris_excl_moms, Forhandlerpris_excl_moms FROM produkter WHERE\"
strSQL = strSQL & \" (varenr LIKE \'%\" & strKeyword & \"%\')\"
strSQL = strSQL & \" OR (varebeskrivelse LIKE \'%\" & strKeyword & \"%\')\"
strSQL = strSQL & \" OR (stor_beskrivelse LIKE \'%\" & strKeyword & \"%\')\"
Set myConn = Server.CreateObject(\"ADODB.Connection\")
myConn.Open \"DRIVER={Microsoft Access Driver (*.mdb)};DBQ=\"&Server.MapPath(\"../db/varer.mdb\")
set rs = myconn.execute(strSQL)
Page = Trim(Request(\"page\"))
If Page = \"\" Then Page = 1
Set rs = Server.CreateObject(\"ADODB.Recordset\")
rs.CursorType = adOpenStatic
rs.PageSize = 2
rs.Open(strSQL), myConn
If Not rs.EOF Then
rs.AbsolutePage = cINT(Page)
rowCount = 0
End If
\' Hvis der er fundet poster på søgningen
If Not (rs.BOF Or rs.EOF) Then
%>
<table width=\"720\" border=\"1\" cellspacing=\"0\" cellpadding=\"0\" align=\"center\" bordercolor=\"#003366\" height=\"96\">
<tr>
<td>
<table width=\"737\" border=\"0\" cellspacing=\"0\" cellpadding=\"3\" align=\"center\">
<tr bgcolor=\"#003366\">
<td colspan=\"10\"><font color=\"#FFFFFF\"><b>Søge resultat</b></font></td>
</tr>
<tr bgcolor=\"#FFFFFF\">
<td colspan=\"3\">
<%
tmpFrom = ( ( CInt( Page ) - 1 ) * rs.PageSize ) + 1
tmpTo = Page * rs.PageSize
tmpTotal = rs.RecordCount
if tmpTotal <= tmpTo then
response.write \"Viser \" & tmpFrom & \" til \" & tmpTotal & \" af ialt \" & tmpTotal & \"<br>\"
else
response.write \"Viser \" & tmpFrom & \" til \" & tmpTo & \" af ialt \" & tmpTotal & \"<br>\"
end if
%>
</td>
<td colspan=\"7\">
<div align=\"right\">
<%
if( CInt( Page ) > 1 ) then
response.write \"<a href=\"\"search.asp?page=\" & ( CInt(page) - 1 )& \"&varebeskrivelse LIKE \'%\" & strKeyword & \"%\'\"\"><<</a> \"
end if
If rs.PageCount <> 1 Then
For i = 1 to rs.PageCount
if( i = CInt( Page ) ) then
response.write \"<b>\" & i & \"</b> \"
else
response.write \"<a href=\"\"search.asp?page=\" & i & \"&varebeskrivelse LIKE \'%\" & strKeyword & \"%\'\"\">\"& i &\"</a> \"
end if
Next
End If
if( CInt( Page ) < rs.PageCount ) then
response.write \"<a href=\"\"search.asp?page=\" & ( CInt(page) + 1 )& \"&Id=\" & Request.Querystring(\"Id\") & \"\"\">>></a> \"
end if
%>
Jeg har prøvet at sætte noget af søge strengen ind i linket til den nye side, ligesom der foregår i det andet til produkterne, men uden held
//Mekaniker
