• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:HIDDENについて)

HIDDENについて

このQ&Aのポイント
  • HIDDENNを使用してページングを実装しようとしていますが、すべてのボタンが表示されている場合にエラーが発生します。
  • エラーの原因は初めのページと最後のページの値の記述方法および各ボタンごとのHIDDENの作成方法にある可能性があります。
  • HIDDENを一つにまとめる方法や他の原因について教えていただけないでしょうか。

質問者が選んだベストアンサー

  • ベストアンサー
  • redfox63
  • ベストアンサー率71% (1325/1856)
回答No.3

更新処理とページングの処理については <script type="text/javascript"> <!--   function myClick( num )   {     var pagenum = document.getElementById( "page_num" );     if ( Math.abs( num ) == 1 ) {       // 引数の絶対値が1なら 加減算       pagenum.value = new Number(pagenum.value) + num;     } else {       // それ以外は即値として使用      pagenum.value = num;     }     var frm = document.getElementById("myForm");     // actionを自分自身に変更     frm.action = "1.asp"     frm.submit();   }   // 更新処理用   function myKousin()   {     var frm = document.getElementById("myForm");     // actionを自分自身に変更     frm.action = "kousin.asp"     frm.submit();   } //--> </script> としておいて 更新ボタンの出力を response.write "<input type=""submit"" value=""更新"" onclick=""return myKousin();"" >" とします 21件で 4ページ目を表示してしまう件に関しては 変数 nMaxやAllCnt が正しい値なのかをチェックしてみてください nMax = Int(AllCnt/10) + (-1)*(((AllCnt/10)-Fix(AllCnt/10))>0) といった具合にしてみてください

sea_clear
質問者

お礼

sea_clear_skyです。 何回も回答ありがとうございます。 無事正常に動作させることができました。 これもredfox63様のおかげです。 ASPに関連する質問にすべて回答して頂いてありがとうございました。 丁寧にわかりやすく教えて頂いてありがとうございます。 また、機会があれば、何卒よろしくお願いします。

すると、全ての回答が全文表示されます。

その他の回答 (3)

  • redfox63
  • ベストアンサー率71% (1325/1856)
回答No.4

ページングの最終ページは端数の切り上げではなく端数の切捨てでいいのでしょう nMax = Int( AllCnt / 10 ) としてみてください

すると、全ての回答が全文表示されます。
  • redfox63
  • ベストアンサー率71% (1325/1856)
回答No.2

前の回答は寝ぼけていたようです m(__)m フォームの出力をこのような具合にして <form id="myForm" method="get"> <% dim ss, nMax ss = Request("page_num") if ss = "" then ss = "0" 'Response.write( "ss : " & ss & "<br>"& vbcrlf) ss = CInt(ss) 'allcnt = 100 nMax = abs(int(-1 * ( AllCnt/10 ) ) ) response.write "<input type=""submit"" value=""&lt;&lt; 最初"" onclick=""return myClick(0);"">" & vbcrlf response.write "<input type=""submit"" value=""&lt; 前の10件"" onclick=""return myClick(-1);""" if ss < 1 then   ' 最初のページなら無効にする   Response.write " disabled=""true"" " end if response.write ">" & vbcrlf response.write "<input type=""submit"" value=""次の10件 &gt;"" onclick=""return myClick(1);""" if ss > nMax -1 then   ' 最終ページなら無効にする   Response.write "disabled=""true"" " end if response.write ">" & vbcrlf response.write "<input type=""submit"" value=""最後 &gt;&gt;"" onclick=""return myClick(" response.write nMax response.write ");"">" & vbcrlf response.write "<input type=""hidden"" name=""page_num"" value=""" & _ ss & """>" & vbcrlf %> </form> スクリプト側を <script type="text/javascript"> <!--   function myClick( num )   {     var pagenum = document.getElementById( "page_num" );     if ( Math.abs( num ) == 1 ) {       // 引数の絶対値が1なら 加減算       pagenum.value = new Number(pagenum.value) + num;     } else {       // それ以外は即値として使用      pagenum.value = num;     }     document.getElementById("myForm").submit();   } //--> </script> といった具合でどうでしょう

sea_clear
質問者

お礼

sea_clear_sky8です。 忙しいところ回答ありがとうございます。 ページ動作で、データベースに21件データがあります。 21件なら3ページが最後のページですなのですが、 最後のページへのボタンを押すと4ページ目になり、データの項目だけ 表示されています。 どう直していいか、わからない状態です。 それと、<Form>にACTIONで更新処理のASPを指定しているのですが、 更新処理のASPを指定すると最初、次へ、前へ、最後へのページで 更新処理をして、ページングができません。 最初、次へ、前へ、最後へのボタンの<INPUT TYPE="Button"に変更しても Formで更新処理を指定すると、ページングができません。 [フォーム指定] response.write "<form id=""myForm"" method=""get"" action=""kousin.asp"">" 最初、次へ、前へ、最後へのボタンは教えて頂いたようにしています。 更新ボタンは次のようにしています。 response.write "<input type=""submit"" value=""更新"">" 忙しいところすいません、時間のあるときでいいので、 よろしくお願いします。

すると、全ての回答が全文表示されます。
  • redfox63
  • ベストアンサー率71% (1325/1856)
回答No.1

HIDDENフィールドは2つでいいように思います 1つは移動先の判断用 次ページなら1、前ページなら-1、最初なら0、最後なら999といった具合にしておく 1つは現在のページを記憶しておくために使用 Response.Write("<input type=""hiddin"" name=""NextPage"" value=""0"">") Response.write("<input type=""hidden"" name=""NowPage"" value=""" & Request("page_num") & """>" ) [最初][前の10件][次の10件][最後] などのリンク(またはボタン)のonclickでNextPageの値を変更します <a onclick="return myClick(0);">[最初]</a> <a onclick="return myClick(-1);">[前の10件]</a> <a onclick="return myClick(1);">[次の10件]</a> <a onclick="return myClick(999);">[最後]</a> <script type="text/javascript"> <!--   function myClick( num )   {     var objPageNum = document.getElementById("PageNum");     objPageNum.value = num;     document.getelementById("myForm").Submit();   } //--> </script> といった具合でどうでしょう ・・・

sea_clear
質問者

お礼

sea_clear_sky8です。 回答ありがとうございます。 下記のように変更しましたが、正常に動作しない状態です。 また、HIDDENのNEXTPAGEをどう使用するのかわかりません。 [変更] 次のページ、前のページはpage_numの値を+1,-1しなくてよろしいでしょうか? function myClick(num) { var frm = document.getElementById("page_num"); if(num==1){ frm.value = frm.value + 1 } else(num==-1){ frm.value = frm.value -1 } else{ frm.value = num } frm.action ="bunkatsu1.ASP";  frm.method= "get" frm.getElementById("myForm").submit(); } response.write "<input type=""Submit"" value=""最初&gt""onclick=""myClick(0);"">" response.write "<input type=""Submit"" value=""前の10件&gt""onclick=""myClick(-1);"">" response.write "<input type=""Submit"" value=""次の10件&gt""onclick=""myClick(1);"">" response.write "<input type=""Submit"" value=""最後&gt""onclick=""myClick(999);"">" 何故か上記の次へ、前へ、最初へ、最後へのボタンを押すと FORMで指定した更新処理のページへSUBMITします。 以前みたいにJAVASCRIPTからページ移動できなくなっています。 忙しいところすいませんが、よろしくお願いします。 仕事の都合で、この時間帯の返信になりますが、よろしくお願いします。 以上です。

すると、全ての回答が全文表示されます。

関連するQ&A