検索結果のページング処理でどうしてもつまづいてしまいます。
問題点としては、検索結果の1ページ目は正常に動作するのですが、2ページ目以降はどのページも全件表示されてしまうという点です。
どうしたら次ページでも絞込み検索の内容がわたせますか??
?省略?
<FORM ACTION="test.asp" METHOD="POST">
<SELECT name="KUBUN">
<option value="">全てのデータ</option>
<option value="あ">あ</option>
<option value="い">い</option>
</SELECT>
<INPUT TYPE="submit" VALUE="検索する">
</FORM>
?省略?
<%
iPageSize = CInt(Request.QueryString("pageSize"))
If iPageSize = 0 Then
iPageSize = 100
End If
iPage = CInt(Request.QueryString("page"))
If iPage = 0 Then
iPage = 1' 初期値は 1
End If
Session("iPage") = iPage
%>
?省略?
<%
Sub showPageNumber()
s = "&action=" & Server.URLEncode(sAction) & "&string=" & Server.URLEncode(sString) %>
Total: <%= iRecordCount %>
<% If iPage > 1 Then %>
<A HREF="<%= Request.ServerVariables("SCRIPT_NAME") %>?page=<%= iPage - 1 %>">前の<%= iPageSize %>件</A>
<% End If %>
<%= (iPage - 1 ) * iPageSize + 1 %>-<%= iPage * iPageSize %>
<% If iPage < iPageCount Then %>
<A HREF="<%= Request.ServerVariables("SCRIPT_NAME") %>?page=<%= iPage + 1 %>">次の<%= iPageSize %>件</A>
<% End If %>
ASP ってことで、良いんですよね。
FORM タグの METHOD 属性が POST のときは、Request.Form でパラメータを取得する。
Request.QueryString でパラメータを取得するには、METHOD 属性は GET になってる必要があります。
追記です。
こんな感じになるんじゃないでしょうか。
<FORM ACTION="test.asp" METHOD="GET">
...
<%
iPageSize = CInt(Request.QueryString("pageSize"))
If iPageSize = 0 Then
iPageSize = 100
End If
iPage = CInt(Request.QueryString("page"))
If iPage = 0 Then
iPage = 1 ' 初期値は 1
End If
もしくは、こう。
<FORM ACTION="test.asp" METHOD="POST">
...
<%
iPageSize = CInt(Request.Form("pageSize"))
If iPageSize = 0 Then
iPageSize = 100
End If
iPage = CInt(Request.Form("page"))
If iPage = 0 Then
iPage = 1 ' 初期値は 1
End If