|
出来るのだASP Q&A掲示板(過去LOG)
訪問数 52046
昨日 889
今日 776 【PR】 パソコン入門からIT専門書まで幅広く取り揃えています。セブン-イレブン受取り手数料無料のセブンアンドワイ。 |
Topに戻る
掲示板に戻る
検索
削除
管理者
|
![]()
ASPの検索結果ページ表示について
yuriさん
[2001/10/12 16:02:33]
[714]
|
Re:ASPの検索結果ページ表示について
Tomitomiさん
[2001/10/12 16:12:59]
[715]
Re:ASPの検索結果ページ表示について
yuriさん
[2001/10/12 17:45:42]
[716]
Re:ASPの検索結果ページ表示について
Tomitomiさん
[2001/10/12 18:39:21]
[717]
Re:ASPの検索結果ページ表示について
yuriさん
[2001/10/12 21:55:07]
[720]
Re:ASPの検索結果ページ表示について
北岳さん
[2001/10/13 14:13:44]
[722]
Re:ASPの検索結果ページ表示について
北岳さん
[2001/10/13 14:27:32]
[723]
|
| [714] ASPの検索結果ページ表示について |
| 投稿者:yuriさん 2001/10/12 16:02:33 |
| こんにちは いつも参考にさせて頂いています。 ASPをはじめてまだ数日の初心者です。 毎日、本とサンプルコードとにらめっこしてますが、質問があります。 300件以上のデータの中から、条件設定をして検索をします。 結果は10件づつ表示して、他のページに飛べるようにします。 いくつかのサンプルと入門書を参考に、検索して10件づつ表示して、全体ページ数と 今のページが表示できましたが、他のページに飛ぼうとしてもエラーになります。 どこを直したらちゃんと表示できますか? ヒントだけでもいいので教えてください。 スクリプトは下記のようにしています。 (別のファイルで、検索条件を設定してこちらのaspファイルで結果表示。) <html> <head> <title>検 索 結 果</title> <base target="_self"> </head> <body> <% Dim ObjConn,ObjRS, Set ObjConn = Server.CreateObject("ADODB.Connection") Dim key_kouysu ObjConn.Open "jirei" '検索ワードを取得 '工種が選択してあれば、それを検索条件とする If Request.Form("kousyu") = "指定しない" Then Set ObjRS = Server.CreateObject("ADODB.Recordset") SQL = "SELECT * FROM [jirei]" ObjRS.Open SQL,ObjConn,3,2 Else Set key_kousyu=Request.Form("kousyu") Set ObjRS = Server.CreateObject("ADODB.Recordset") SQL = "SELECT * FROM [jirei] WHERE((jirei.工種) = '"& key_kousyu &"')" ObjRS.Open SQL,ObjConn,3,2 End If %> <b>工種:</b><%= Request.Form("kousyu") %>で検索しました<BR> 検索結果 <% Dim PageNum 'もし、該当データがなければこの表示 If ObjRS.Eof Then Response.Write "<center><font size=3 color=#FF0000><b>該当するデータはありません。</b></font></center>" Else '該当データがあれば、1ページのレコード数を10件に ObjRS.PageSize = 10 Page=ObjRS.PageCount for i=1 to ObjRS.PageCount Response.Write"[ <A href=jirei_main.asp?page="&i&">"&i&"</A> ]" next PageNum=CInt(Request.QueryString("page")) if PageNum<1 or PageNum> ObjRS.PageCount then PageNum=1 end if ObjRS.AbsolutePage = PageNum Response.Write"<P>page:"& PageNum &"/" & ObjRS.PageCount & "</p>" Response.Write ObjRS.RecordCount & "件のデータがみつかりました。" & "<BR>" '項目を表示する Response.Write "<div align=center>" Response.Write "<center>" Response.Write "<table border=1 bordercolor='blue' cellspacing=0 width= 700>" Response.Write "<tr>" Response.Write "<td align=center height=30 bgcolor=#0000CE width=300><font size=2 color=#FFFFFF><b>タイトル</b></font></td>" Response.Write "<td align=center height=30 bgcolor=#0000CE width=70><font size=2 color=#FFFFFF><b>工種</b></font></td>" Response.Write "<td align=center height=30 bgcolor=#0000CE width=100><font size=2 color=#FFFFFF><b>種別</b></font></td>" Response.Write "<td align=center height=30 bgcolor=#0000CE width=90><font size=2 color=#FFFFFF><b>事故の型</b></font></td>" Response.Write "<td align=center height=30 bgcolor=#0000CE width=70><font size=2 color=#FFFFFF><b>起因</b></font></td>" Response.Write "<td align=center height=30 bgcolor=#0000CE width=70><font size=2 color=#FFFFFF><b>PDFファイル名</b></font></td>" Response.Write "</tr>" 'ページサイズの数だけデータを表示する for j=1 to ObjRS.PageSize X1=objRS.Fields("タイトル") X2=objRS.Fields("工種") X3=objRS.Fields("種別") X4=objRS.Fields("事故の型") X5=objRS.Fields("起因") X6=objRS.Fields("PDF_FILE") Response.Write "<tr>" Response.Write "<td><font size=2>" & X1 & "</font></font></td>" Response.Write "<td><font size=2>" & X2 & "</font></font></td>" Response.Write "<td><font size=2>" & X3 & "</font></font></td>" Response.Write "<td><font size=2>" & X4 & "</font></font></td>" Response.Write "<td><font size=2>" & X5 & "</font></font></td>" Response.Write "<td><font size=2>" & X6 & "</font></font></td>" Response.Write "</tr>" ObjRS.MoveNext if ObjRS.EOF then exit for next Response.Write "</table>" Response.Write "</center>" Response.Write "</div>" End If ObjRS.Close %> </body> </html> **********というわけなんですが、どこか根本的に間違っているのでしょうか? 初歩的なことで恐縮ですが、よろしくお願いします。 |
| [715] Re:ASPの検索結果ページ表示について |
| 投稿者:Tomitomiさん 2001/10/12 16:12:59 |
| こんにちは、Tomitomiです。 ざっと見ましたが、いくとか質問があります。 >他のページに飛ぼうとしてもエラーになります。 ということですが、その「他のページに飛ぶ処理」の部分が見つけきれません。 それとも、「他のページに飛ぶ処理」を付加したいと言うことでしょうか? > 'ページサイズの数だけデータを表示する > for j=1 to ObjRS.PageSize > > X1=objRS.Fields("タイトル") > X2=objRS.Fields("工種") > X3=objRS.Fields("種別") > X4=objRS.Fields("事故の型") > X5=objRS.Fields("起因") > X6=objRS.Fields("PDF_FILE") > > Response.Write "<tr>" > Response.Write "<td><font size=2>" & X1 & "</font></font></td>" > Response.Write "<td><font size=2>" & X2 & "</font></font></td>" > Response.Write "<td><font size=2>" & X3 & "</font></font></td>" > Response.Write "<td><font size=2>" & X4 & "</font></font></td>" > Response.Write "<td><font size=2>" & X5 & "</font></font></td>" > Response.Write "<td><font size=2>" & X6 & "</font></font></td>" この検索結果の一覧に、リンクはりたいとか。。 |
| [716] Re:ASPの検索結果ページ表示について |
| 投稿者:yuriさん 2001/10/12 17:45:42 |
| Tomitomiさん、早速レスありがとうございます。 ええと、ですね。 ******** for i=1 to ObjRS.PageCount Response.Write"[ <A href=jirei_main.asp?page="&i&">"&i&"</A> ]" next PageNum=CInt(Request.QueryString("page")) if PageNum<1 or PageNum> ObjRS.PageCount then PageNum=1 end if ObjRS.AbsolutePage = PageNum Response.Write"<P>page:"& PageNum &"/" & ObjRS.PageCount & "</p>" Response.Write ObjRS.RecordCount & "件のデータがみつかりました。" & "<BR>" ******* としてあることで、結果表示としてもし検索の結果が22件あったとすれば、 [1][2][3] page:1/3 22件のデータがみつかりました となります。 そして、[1][2][3]にはそれぞれリンクが貼られています。 リンク先は、もし、その結果表示ファイルが jirei_main.asp とすれば、[1]をクリックすると、jirei_main.asp?=page1に、 [2]をクリックすると、jirei_main.asp?=page2になっています。 他のページに飛ぶというのは、ここをクリックして、2ページ目や3ページ目を 表示することを表現していたのですが・・・ 掲示板の結果表示のコードなどを見て、そうなっていたので勝手に 2ページ目、3ページ目に飛べるんだと解釈していたのですが、 実はその jirei_main.asp?=page2 で2ページ目を表示できるというところが わたしにはよく理解できていないのですが、recordsetのページングでそのような 機能があるのかなと思ったのですが・・・・ もしかしてすごい勘違いしてたのかも?・・。 |
| [717] Re:ASPの検索結果ページ表示について |
| 投稿者:Tomitomiさん 2001/10/12 18:39:21 |
| こんばんわ、Tomitomiです。 > 実はその jirei_main.asp?=page2 で2ページ目を表示できるというところが > わたしにはよく理解できていないのですが、recordsetのページングでそのような > 機能があるのかなと思ったのですが・・・・ > もしかしてすごい勘違いしてたのかも?・・。 > ふっ。はずかしながら、私もしらなかったです。でも乗った船なので調べてみました。 PageSize = Recordsetオブジェクトの1ページに含まれるレコード数を設定 PageCount = Recordsetオブジェクト内のページ数を設定 AbsolutePage = カレントレコードのページを設定 で、実際に yuriさんのソースを動かしてみました。 「jirei_main.asp?=page2」ではなくて「jirei_main.asp?page=2」だと思いますが、 これをクリックするとエラーになる場合は、 単純にこのソースが「jirei_main.asp」というファイル名ではない。 私の場合、 工種:で検索しました 検索結果 該当するデータはありません。 が、出ました。 でも、↑これでも2ページ目が表示できないのでおかしいですよね。 「工種:で検索しました」ということは、検索する工種の文字列がプログラムに渡っていない。 で、工種を渡さなきゃいけないので、いくつか修正が必要になります。 >Request.Form("kousyu") を、「Request("kousyu")」にする。*GETのも受けるため。 > ******** > for i=1 to ObjRS.PageCount > Response.Write"[ <A href=jirei_main.asp?page="&i&">"&i&"</A> ]" > next の、 > Response.Write"[ <A href=jirei_main.asp?page="&i&">"&i&"</A> ]" を > Response.Write"[ <A href=jirei_main.asp?page="&i&"&kousyu="&Request("kousyu")&">"&i&"</A> ]" ↑工種の検索文字列を送る にする。 で、動きました。 答えを全部教えるのも勉強にならないかな?と思いましたが、 月曜日までここ見れないので、答えを書いてしまいました。 ではでは。 |
| [720] Re:ASPの検索結果ページ表示について |
| 投稿者:yuriさん 2001/10/12 21:55:07 |
| Tomitomiさん、こんばんは。 そうなんです。すみません、私もエラーになるのではなくて、 検索結果が、あったはずなのに「該当するデータはありません」になってしまってました。 (エラーとは全然違いますよね。スミマセン!) サンプルを見て自分なりに書き直したのですが、そのサンプルは掲示板の表示だったので 確かにデータベースの「id」番号を渡しているスクリプトがありました。 私の場合検索結果なので、これでは連番になってしまうと思ってその部分を削除したのでした。 あと、もう一歩足りなかったのですね。 ありがとうございました。 私も、もう家に帰っていて月曜日まで仕事場に行かないので、テスト出来ないのですが、 (自宅のパソコンではASPの環境が作れないので) 早く試したいです!! ホントにありがとうございました。(感謝です) |
| [722] Re:ASPの検索結果ページ表示について |
| 投稿者:北岳さん 2001/10/13 14:13:44 |
| 割り込み失礼。 > 私も、もう家に帰っていて月曜日まで仕事場に行かないので、テスト出来ないのですが、 > (自宅のパソコンではASPの環境が作れないので) > 早く試したいです!! 自宅のパソコンがWINDOWS98の場合、 c:\windows\options\cabs\pws\setup.exe を起動すればPWS(Personal Web Service)でASPの環境ができます。 違う場合は・・・別の人のお役に立つかも、の情報でした。 ついでに、95ではPWSをMS社からダウンロードします。 2000はIISが標準搭載のはずです。 MACその他は知りません。 |
| [723] Re:ASPの検索結果ページ表示について |
| 投稿者:北岳さん 2001/10/13 14:27:32 |
| > ついでに、95ではPWSをMS社からダウンロードします。 > 2000はIISが標準搭載のはずです。 > MACその他は知りません。 MAC版PWSもあるようです。 http://www.micchan.com/imac/pws.html ご参照。 |
|
TreeBBS For ASP V.0.1.3 |