• ベストアンサー

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

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

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

  • ベストアンサー
  • 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