人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

検索結果のページング処理でどうしてもつまづいてしまいます。
問題点としては、検索結果の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 %>

●質問者: winona1029
●カテゴリ:コンピュータ
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● a-kuma3

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


a-kuma3さんのコメント
>> どのように記述すればよろしいでしょうか? << 回答に追記しました。自信はありませんが。

a-kuma3さんのコメント
パラメータの pageSize と page のところが渡せてないのだと思うので、 -GET にして、IIS のアクセスログで、渡せていることを確認 -デバッグログなどで、Request.QueryString で、きちんと取り出せているかを確認 といった所から、切り分けていくしかないでしょう。 省略されてる iPage を使って、検索をやってるところがまずかった、というオチもありそうです <tt>:-)</tt>

TransFreeBSDさんのコメント
"前""次"のリンクにKUBUNがわたってないんじゃ? この場合、リンクでやってますからPOSTは使わない方が良いと思います。

TransFreeBSDさんのコメント
>|| <A HREF="<%= Request.ServerVariables("SCRIPT_NAME") %>?KUBUN=<% Server.URLEncode(「KUBUNの入ってる変数」) %>&page=<%= iPage - 1 %>"> ||< かな? ASPとかよく分かりませんのでServer.URLEncodeの使い方はテキトーです。 KUBUNは多分DBへのクエリで使ってると思いますので変数に入ってるんじゃないでしょうか。 KUBUNが空の場合にどうなるのか/すべきかは分かりません。

質問者から

a-kuma3ありがとうございます。
色々と試してはいるのですが、なかなか上手く動作しません。
どのように記述すればよろしいでしょうか?


関連質問

●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ