• ベストアンサー

押すボタンによって代入する数値を変えたい

いつもお世話になります。 現在、「前の10件」または「次の10件」ボタンを押すことにより 検索結果ページが切り替わるページ遷移処理を作っています。 (表示するごとに、limit の値を変えた SQL を投げています。) 次へ進むだけなら表示件数を加えていけばいいので正常に動作するのですが、 前に戻る処理を追加すると動きません。 例えば下記のようにすると、当たり前ですが「前の10件」で-10した後にすぐ+10してしまいます。 $str_page = $str_page - $view; <input type=\"submit\" name=\"next\" value=\"前の".$view."件\"> $str_page = $str_page + $view; <input type=\"submit\" name=\"next\" value=\"次の".$view."件\"> 「前の10件」を押したら-10、「次の10件」を押したら+10のように、 ボタンを押した時に、押すボタンによって代入する数値を 変えられたらいいのですが・・・。 なお、POST で値を渡しているのでGETによるURL渡しはできません。 どなたかお分かりの方がおられましたら、ご教授下さい。 よろしくお願い致します。

  • PHP
  • 回答数2
  • ありがとう数2

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

  • ベストアンサー
  • Dpop
  • ベストアンサー率51% (279/544)
回答No.1

next に 前の$view件と言う文字列が入っていた時には、-10し、 next に、次の$view件と言う文字列が入っていた時には、+10する。 と言うアルゴリズムを加えてみてください。 submit の valueの値も、他の input タグ同様取得可能です。

yabudoctor
質問者

お礼

お教え頂いたやり方でうまく動きました! 早速のご回答感謝致します。 ありがとうございました。

その他の回答 (1)

noname#9414
noname#9414
回答No.2

submitのnameを異なるものにしてはどうでしょうか? <input type="submit" name="prev10" value="前の10件"> <input type="submit" name="next10" value="次の10件"> このようにすれば、POSTされたときに、$prev10がセットされていれば・・・と$next10がセットされていれば・・・で判断することができると思います。 #register_globalsがONなら。そうでなければ、$_POST['prev10']とかになるかな? 確認していませんが、こんな感じでどうでしょうか? 簡単なサンプルで確認されてみてはどうでしょう。 間違いがありましたらご指摘ください。 ではでは☆

yabudoctor
質問者

お礼

情報ありがとうございます。 時間が無く実験が出来ませんでしたが、 お二人のお力で無事に解決することができました。 本当にありがとうございました。

関連するQ&A

  • submitボタンにvalue属性の値でないラベルを表示したい

    submitボタンを複数設置し,全てのラベルに「これを修正する」と表示したいのですが, 下記のように押下されたsubmitボタン別に,POSTする値をそれぞれ1,2,3と分けたいです. (page.phpは,$_POST["PageNumber"]として1か2か3を受け取る) ですが,value属性の値がボタンのラベルとしてボタン表面に記されてしまい,困っています. 何とかならないでしょうか? <form method="post" action="page.php"> <input type="submit" name="PageNumber" value="1"></td></tr> <input type="submit" name="PageNumber" value="2"></td></tr> <input type="submit" name="PageNumber" value="3"></td></tr> </form>

    • ベストアンサー
    • HTML
  • 複数のsubmitボタンで押されたボタンを取得する方法

    form内の、submitボタンの値が拾えません。 1つだけsubmitボタンを設置すると値が拾えますが、 2つ以上submitボタンを設置すると拾えません。 仕様上、無理なのでしょうか? <SCRIPT language="JavaScript"> function move_post(){ alert(document.frmMvPost.btn.value); } </SCRIPT> <FORM name="frmMvPost" action="" method="post" onsubmit="return move_post()"> <INPUT type="submit" name="btn" value="テスト1"> <INPUT type="submit" name="btn" value="テスト2"> <INPUT type="submit" name="btn" value="テスト3"> </form>

  • HIDDENについて

    sea_clear_sky8です。 [環境] Win98SE PWS [質問内容] 次のページ、前のページ、最初のページ、最後のページっていうのを作って ページングさせたいのですが、 下記のように一つ一つにHIDDENNを作ると、全部のボタンが表示されている 場合にボタンをクリックすると下記SQLで、Commandオブジェクトのコマンドが設定されていませんとエラーが表示されます。 [SQL] "select * from test_t " & _ "where name like '%" & Request("nm") & "%' " & _ "order by id " & _ "limit " & Request("page_num")*10 & ",10" [最初のページ] response.write "<input type=""Submit"" value=""最初のページ&gt""onclick=""myClick();"">" response.write "<input type=""HIDDEN"" name=""page_num"" value=""&0&"">" [次のページ] response.write "<input type=""Submit"" value=""次の10件&gt""onclick=""myClick();"">" response.write "<input type=""HIDDEN"" name=""page_num"" value=""" & request("page_num")+1 & """>" [前のページ] response.write "<input type=""Submit"" value=""前の10件&gt""onclick=""myClick();"">" response.write "<input type=""HIDDEN"" name=""page_num"" value=""" & request("page_num")-1& """>" [最後のページ] response.write "<input type=""Submit"" value=""最後のページ&gt""onclick=""myClick();"">" response.write "<input type=""HIDDEN"" name=""page_num"" value=""" &Abs(Int(-1*(AllCnt/10)))& """>" エラーの原因は最初のページと最後のページのVALUEの部分のvalue=""&0&""、 value=""" &Abs(Int(-1*(AllCnt/10)))& """の部分の記入の仕方が おかしいか、各ボタンごとにHIDDENを作成しているため、おかしいのでは ないかと考えています。 HIDDENを一個にする方法はありますか、 いろいろ考えていますが、考えつかない状態です。 また、他に原因があればよろしくお願いします。 すいませんが、ご教授願います。 よろしくお願いします。

  • どのボタンが押されたかの判定

    フォームに複数のSubmitボタンがある場合、飛び先のhtmlファイル ではnameとvalueを使えばどのボタンが押されたか判定できますが、 イメージボタンの場合、valueに設定しておいた文字列が取得できま せん。(valueにはイメージが入っている?) <input type="image" name="DayButton" value="Prev" src="images/prev.gif"> <input type="image" name="DayButton" value="Next" src="images/next.gif"> どのようにすればどのボタンが押されたか判定できますか?

    • ベストアンサー
    • HTML
  • PHPのsubmitボタンが複数ある場合

    PHPのsubmitボタンが複数ある場合 PHPにて会計システムを開発しているのですが、計算ボタンと、更新してDBに追加するためのボタンとが混在している場合、 $_POST等で押されたボタンの処理を分けることは可能なのでしょうか?下の例は、 name="calculation"が押された場合は、val1とval2の値を計算し、totalへ値を入れます。 name="update"が押された場合は、それぞれのフォームの値をDBに更新をかけます。 <?php <form action="****.php" method="POST"> <input type="text" name="val1" value="20"/> <input type="text" name="val2" value="30"/> <input type="text" name="total" value="50"/> <input type="submit" name="calculation"/> <input type="submit" name="update"/> </form> ?> お分かりになる方、ご教授お願いいたします。

    • 締切済み
    • PHP
  • ボタンの2度押しを防止するには?

    Webページでボタンの2度押しを防止するにはどうしたらいいでしょうか? onClickでボタンをdisableにするようにしたところ、Submitしません。Disableにした上でSubmitさせるとパラメータが渡せません。 <HTML><BODY> <FORM method="get" name="MyForm" action="page2.html"> <INPUT type="submit" name="submit1" value="submit1" onClick="this.disabled = true;document.MyForm.submit();"> <INPUT type="submit" name="submit2" value="submit2" onClick="this.disabled = true;document.MyForm.submit();"> </FORM></BODY></HTML> 1つのFORM内に複数のボタンがあるため、どのボタンが押されたかがパラメータで渡される必要があります。

  • Perlでページ処理がどうしても機能しない!教えて!

    次のページが表示してくれません。 どこが悪いのか、わかりません。教えてください。 スクリプトは以下の通りです。 #formのデータ処理で $in{$key} = $val; # 入力データは%inへ #ページ処理(2) if($val eq '次の$page件'){ $allhits=$in{'allhits'}; $ff=$key; &Search; } #sub Search内で #foreach $line (@messages) {の中で #ページ処理(4) $page_control++; if($ff eq ""){ $ff = 1; } if( $ff > $page_control ){ next; } #ページ処理(5) #最初のページの時、データの最後まで処理する。 if($in{'next_num'} eq ''){ if($end != 1 && $hit == $page ) { $end = 1; $next_num = $page_control; $allhits++ ; } elsif( $hit >= $page) { $allhits++ ; } else{ push(@NEWS , $line); $hit++; $allhits++; } $test5 = $allhits;     #test値 13 -> なし 正常(値の変化をチェック) }elsif( $ff > 4 ){      #この辺の処理がうまくいっていない? $allhits = $in{'allhits'}; $test3 = $allhits;     #test値が入らない?(値の変化をチェック) if ($hit == $page ) { $next_num = $page_control ; $test4 = $next_num;   #test値が入らない?(値の変化をチェック) #last OUTER; } else { push (@NEWS , $line ); $hit++; } } } #foreach文ここまで &footer; #ページ送りのサブルーチン #ページ送りボタンサブルーチン sub footer { print "<table width=700><tr><td align=left>\n"; if ($ff >2) { print "<INPUT type=submit value=\"前の$page件\" onClick=history.back()>\n"; } print "</TD><TD align=right>\n"; if ($next_num){ print "<INPUT type=submit name=\"$next_num\" value=\"次の$page件\">\n"; } print "</td></tr></table>\n"; }

    • ベストアンサー
    • Perl
  • vb2005のWebbrowserコントロールで複数のSubmitボタンがある場合

    Webbrowserコントロールに読み込んだwebページ上に 複数のSUBMITボタンがある場合、name属性で押すボタンを選択し 実行する方法を教えてください。 -------------------------------------------------------------- 【htmlのソース】 <INPUT type=submit value=アップロード name=select> <INPUT type=submit value=次へ > -------------------------------------------------------------- 同一フォーム上に二つのボタンがある。 【vb2005のソース】 -------------------------------------------------------------- WebBrowser1.Document.Forms(0).InvokeMember("submit") -------------------------------------------------------------- を実行すると、 「<INPUT type=submit value=次へ >」のボタンの方は実行できるのですが、 「<INPUT type=submit value=画像のアップロード name=select>」の方は実行されません。 よく分からないなりに、 -------------------------------------------------------------- WebBrowser1.Document.All.GetElementsByName("select")(0).InvokeMember("submit") -------------------------------------------------------------- 等と書いてみましたが、反応ナシです。 ご教授、お願いいたします。

  • フォームの「キャンセル」ボタンを押すと登録されてしまう…

    以下のようなフォームをつくっているのですが、どうもキャンセルを押すと登録されてしまいます。ごうしたらよいでしょうか? <form id='next' name='next' method='post' action='XXX.php'> <INPUT name='next' type='submit' id='next' value='登録する'> <INPUT type='button' value=' 戻る ' onClick='history.back()'> <INPUT name='cancel' type='submit' value='キャンセル' onClick='index.html'>

    • ベストアンサー
    • HTML
  • 選択したたラジオボタンの値をSUBMITボタンに

    選択したたラジオボタンの値をSUBMITボタンの名前として自動的に替えたいのですが、助言をいただけますか。 イメージは下記です。★の部分に、クリックごとにradioの値を入れたいのです。 <script Language="JavaScript"><!-- function set() { n = document.myFORM.Radio.value; } // --> </script> <FORM ACTION="add.cgi" METHOD="POST" name="myFORM"> <INPUT TYPE="RADIO" NAME="Radio" VALUE="東京" onclick="set()" CHECKED> <INPUT TYPE="RADIO" NAME="Radio" VALUE="大阪"> <INPUT TYPE="SUBMIT" NAME="Submit" VALUE="★"></form>

専門家に質問してみよう