• ベストアンサー

2つのボタンをクリックしていない、という条件判定

1ページの中にフォームが幾つかあり、その内の2つのフォーム送信ボタンの何れもクリックされていなければ、という条件文を書きたいのですが、どう書くのでしょうか? ・対象フォーム name、 「a」「b」 ・submitボタンにも、nameを付けられるのでしょうか?

  • re999
  • お礼率61% (476/777)

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

  • ベストアンサー
  • fujillin
  • ベストアンサー率61% (1594/2576)
回答No.4

#1です。 >送信先は現ページ(index.php)を指定しています。 同じページを表示するのであっても、基本的にページ遷移をしているのと同じでphpから出力されるHTMLを、さらの状態で表示することになります。 同じHTMLが返されれば、HTMLソースやDOMからは情報を得ることはできません。 それなので、どこかにどの送信ボタンで遷移したかがわかる情報を記録したり、あるいはサーバ側から送ってもらう必要があります。 どうせフォーム送信をサーバで処理するのですから、#3様のおっしゃるようにサーバ側(php)で処理をするのが一番素直かと思います。 1)サーバ側でフォームを受け取る   → 出力時にhogeの処理を省いて出力する 2)サーバ側でスクリプトにフラグを立てて出力   → ページのスクリプトでフラグによってhogeの処理を行なうか判断 とか。 どうしてもサーバ側で処理をしたくないのであれば… 3)スクリプトでクッキーにフラグを出力  → (遷移後の)スクリプトでクッキーを読んで(消して)判断する。  (クッキーが無効になっている場合は、当然ながらうまく行きません) 4)フォームの送信をgetで行い  → (遷移後の)スクリプトでurlのクエリ部を読んで判断 5)submit時にフォーム送信をせずにajaxで送信し、hogeに代わる処理(元に戻す処理か?)  をスクリプトで行なう。 (ページ遷移をしない) とか。 全体の処理が不明なので、何が必要で何が必要でないのかよくわかってませんが…

re999
質問者

お礼

回答ありがとうございました。 >同じページを表示するのであっても、基本的にページ遷移をしているのと同じでphpから出力されるHTMLを、さらの状態で表示することになります。 >同じHTMLが返されれば、HTMLソースやDOMからは情報を得ることはできません。 なるほど。勘違いに気がつきました… >全体の処理が不明なので、何が必要で何が必要でないのかよくわかってませんが… こちらこそよく分からないことを質問してしまい、恐縮です…

その他の回答 (3)

回答No.3

すみません、補足です。 こういう処理はJavaScriptではなくサーバー側でやったほうがやりやすいです。

re999
質問者

お礼

回答ありがとうございましたー

回答No.2

>・submitボタンにも、nameを付けられるのでしょうか? 付けたらどんな動作になりますか? それが答えだと思いますよ。

  • fujillin
  • ベストアンサー率61% (1594/2576)
回答No.1

送信ボタンをクリックすれば、通常はページ遷移されます。 (スクリプトなどでキャンセルしていない限り) それなので、そのページが表示されているということが、どちらもクリックされていないという条件をすでに満たしていることになるのではないでしょうか。 もっと、複雑な条件下での判定を行ないたいというのであれば、そのあたりがわかるような情報が必要です。

re999
質問者

補足

回答ありがとうございます。 送信先は現ページ(index.php)を指定しています。 最初にindex.phpを読み込んだとき、処理hogeを実行して、 フォームa送信ボタンで、index.phpを再度読み込んだときは、処理hogeを実行せずに、 フォームb送信ボタンで、index.phpを再度読み込んだときも、処理hogeを実行しない、 ということをやりたいです。 現状だと、ページを読み込んだり、送信ボタンをクリックする度毎に処理hogeが走ってしまいます。 ちなみに、送信ボタン処理自体をキャンセルしたいわけではありません。

関連するQ&A

  • VBA 確認・送信ボタン

    VBAでWEBページにあるフォームに文章を記載し、送信させるものを作っていますが、WEBページのフォームの下に確認ボタンがあり、 そのボタンをクリックするところまではできましたが、次に出てくる 画面の送信ボタンをクリックすることができません。 結果投稿できません。 どうすればいいのでしょうか? 確認ボタンは、 objIE.document.all.submit.Click でうまくいけました。 次に出てくる送信ボタンのnameもsubmitになっています。 よろしくお願いします。

  • フォームでボタンクリック後にそのページに内容を表示する

    a.htmというファイルの中でフォームを使用しています。 フォームで送信のボタンを押すとフォームの内容を反映した文をphpを使用してb.phpに表示させています。 送信ボタンを押すとb.phpのページに飛んでしまいますが、a.htmの送信ボタンの次の行くらいにb.phpの内容を表示させるようにしたいです。 どのように記述すればできるでしょうか?

  • 送信ボタンがEnterキーでなく、マウスクリックのみに反応するようにする方法はないでしょうか?

    ページの一番上に、次の文による送信ボタンを設置しています。 <input name="submit" type="submit" value="送信"> 他に多くのテキスト入力フォームがあり、それを全て入力してからこの送信ボタンを押して、次の処理をしたいのに、例えば仮名漢字変換の際にEnterキーを誤って2回押しただけで表記ボタンに反応してしまい、次の処理に進んでしまいます。これを避けるため、ボタンがマウスクリックのみに反応するような方法、またはそれに準じた方法はないものでしょうか?宜しくお願いいたします。

    • ベストアンサー
    • HTML
  • ボタンのクリック

    こんにちは! 教えて下さい。 今submitボタンA、普通のボタンBがあります。 submitボタンAをマウスでクリックし、何らかの処理をした後 コード上でボタンBをクリックしたいのですが可能でしょうか?

  • ボタンの判定が出来ません?

    print "<P><INPUT TYPE=submit NAME=\"送信\" VALUE=\"送信\"> <INPUT TYPE=submit NAME=\"削除\" VALUE=\"削除\"> <INPUT TYPE=reset NAME=\"クリア\" VALUE=\"クリア\">\n"; 上記のようなコーディングで、ボタンを表示させてますが、 どちらのボタンを押しても、送信しか受け取れません。 どこで、何をどのようにコーディングすれば読みとれるのでしょうか?

    • ベストアンサー
    • Perl
  • 複数の送信ボタンと送信先

    お世話になります。 HTMLのフォームでのsubmitボタンについての質問です。 例えば1つのテキストボックスと、Aに送信、Bに送信、Cに送信という3つのボタンという構成のフォームがあり テキストボックスのデータを Aに送信ボタンをクリックするとhttp://○○○/a.cgiに Bに送信ボタンをクリックするとhttp://○○○/b.cgiに Cに送信ボタンをクリックするとhttp://○○○/c.cgiに 送信するにはどのようなHTMLを書けばよいのでしょう。 多分JavaScript使うのだろうなと思うのですけれど

    • ベストアンサー
    • HTML
  • ボタンを消したい(二度押し抑制)

    <form method="post" action="xxx"> <input type="text" name="a"> <input type="submit" name="submit" value="SEND"> <input type="submit" name="submit" value="BACK"> </form> こういうソースがあります。 SENDボタンをクリックするとメールが送信されます。 BACKボタンをクリックすると入力画面に戻ります。 ここでSENDボタンを連打されるとメールが連続送信されてしまいます。 そうならないようにボタンをクリックした時2つのボタンを消してしまいたいのですが、どうすればよいでしょうか。 よろしくお願いします。

  • 再度・ボタンの判定が出来ません?

    前回と同じ質問で、不可能との解答で締め切りましたが、 可能との意見が有るみたいですので、再度上げさせてもらいます。 print "<P><INPUT TYPE=submit NAME=\"送信\" VALUE=\"送信\"> <INPUT TYPE=submit NAME=\"削除\" VALUE=\"削除\"> <INPUT TYPE=reset NAME=\"クリア\" VALUE=\"クリア\">\n"; 上記のようなコーディングで、ボタンを表示させてますが、 どちらのボタンを押しても、送信しか受け取れません。 どこで、何をどのようにコーディングすれば読みとれるのでしょうか?

  • 同じフォーム内で、押下するボタンによって、飛び先のページ(cgi)を変

    同じフォーム内で、押下するボタンによって、飛び先のページ(cgi)を変えたい。 例えば、 以下のように、同じフォーム内に2つのボタンを用意し、 片方のボタンをクリックすると、現在のページ(aaa.cgi)へ戻り、 もう片方のボタンをクリックすると、別のページ(bbb.cgi)へ飛ぶようにしたい。 なお、何れのボタンもサブミットしたい。 ↓(aaa.cgi)================================= : <form name="frm1" action="???" method="post"> <input name="t1" type="text"> <input name="t2" type="text"> : <input name="b1" type="button" onClick="submit();"> <input name="b2" type="button" onClick="submit();"> : </form> : ↑(aaa.cgi)================================= 良い方法はないでしょうか。 ご存知の方、ご教授ねがいます。 よろしくお願いします。  

    • ベストアンサー
    • Perl
  • formでENTERとSUBMITボタンを押した場合のパラメータの分け方

    formでenterキーを押して内容を送信した場合とSUBMITボタンを押して内容を送信した場合でパラメータによって場合わけしたいのですがどのようにすればよいでしょうか? SUBMITボタンをクリックした場合は以下のように記述をすればbを使うことができるのですが <input id="a" type="submit" name="b" value="ボタン" /> ENTER用のパラメータをつけるやり方がわかりません。 回答よろしくお願いいたします。

専門家に質問してみよう