- PR -

フォーム名称の取得

1
投稿者投稿内容
syo
常連さん
会議室デビュー日: 2003/08/17
投稿数: 43
投稿日時: 2003-08-23 15:11
お世話になっております。

1つのHTMLファイルの中に複数のフォームがあり、
その送信先が同じサーブレットだった場合、
「どのフォームのSUBMITによるものか?」
を判断することは可能なのでしょうか?

<FORM NAME="testform" METHOD="POST" ACTION="testservlet">
というフォームがあった場合、"testform"という情報が取得できれば
・・・と思ったのですが、
調べた範囲では、このNAMEに関しては、HTMLファイル内で
JavaScriptによる参照の際には使えるのですが、
サーブレットからの取得の方法が見当たりませんでした。

どのフォームのSUBMITかを判別する場合、
それぞれのフォームに固有のデータを見て判断するか、
あるいはHIDDENで名称を埋め込んでおくしかないのでしょうか?
taku
ぬし
会議室デビュー日: 2002/11/12
投稿数: 918
お住まい・勤務地: 墨田区→中野区
投稿日時: 2003-08-25 09:55
引用:

syoさんの書き込み (2003-08-23 15:11) より:
お世話になっております。

1つのHTMLファイルの中に複数のフォームがあり、
その送信先が同じサーブレットだった場合、
「どのフォームのSUBMITによるものか?」
を判断することは可能なのでしょうか?

<FORM NAME="testform" METHOD="POST" ACTION="testservlet">
というフォームがあった場合、"testform"という情報が取得できれば
・・・と思ったのですが、
調べた範囲では、このNAMEに関しては、HTMLファイル内で
JavaScriptによる参照の際には使えるのですが、
サーブレットからの取得の方法が見当たりませんでした。

どのフォームのSUBMITかを判別する場合、
それぞれのフォームに固有のデータを見て判断するか、
あるいはHIDDENで名称を埋め込んでおくしかないのでしょうか?



 これってJavaとは何の関係もないですね。
単なるHTMLの問題ですよ。

 HTMLのsubmit属性のオブジェクトのnameで値を取得して判断すれば良いだけでは?

//サンプル
<html>
<head>
<title>サンプル</title>
</head>
<body>
<form>
<input type="submit" name="sub1" value="実行">
</form>
</body>
</html>
syo
常連さん
会議室デビュー日: 2003/08/17
投稿数: 43
投稿日時: 2003-08-25 22:36
引用:

 これってJavaとは何の関係もないですね。
単なるHTMLの問題ですよ。

 HTMLのsubmit属性のオブジェクトのnameで値を取得して判断すれば良いだけでは?



アドバイスありがとうございました。

submitのname/valueを取得して処理を行うということも考えたのですが、

1.submitでnameの値を統一してvalueを元に判断する場合、
 valueの値をform毎に変更しなければならない
 (たとえば全て「送信」という値にすることはできない)
2.逆にsubmitのnameの値で判断する場合、
 formの数だけ(といってもたかだか数個ではあるのですが)
 パラメータの取得を行う必要がある

ということで、実はもっといい方法があったりするのかも?
と思った次第であります。

まぁ、何十個ものフォームから判別するわけではないので、
素直に2番の方法で行おうと思います。

#確かに、直接はJavaとは関係のない話ですね。
 (Java以外ならもしかして簡単に取得できたりするのかな・・・と思ったので)
 失礼いたしました。
未記入
大ベテラン
会議室デビュー日: 2003/06/28
投稿数: 219
投稿日時: 2003-08-25 23:21
引用:

syoさんの書き込み (2003-08-25 22:36) より:
2.逆にsubmitのnameの値で判断する場合、
 formの数だけ(といってもたかだか数個ではあるのですが)
 パラメータの取得を行う必要がある


えっと、formの数だけパラメータの取得というところがチョイと引っかかったので・・・
(勘違いだったらなんですが)。たとえば
コード:
<FORM NAME="testform" METHOD="POST" ACTION="testservlet">
<input type="hidden" name="mode" value="form1">
<input type="submit" value="送信">
</form>
<FORM NAME="testform" METHOD="POST" ACTION="testservlet">
<input type="hidden" name="mode" value="form2">
<input type="submit" value="送信">
</form>


とやれば、どのフォームから送信されたかを判別するには mode の値を
getBytesするだけなので、フォームが何十個あってもパラメータは1個でいいのでは??
taku
ぬし
会議室デビュー日: 2002/11/12
投稿数: 918
お住まい・勤務地: 墨田区→中野区
投稿日時: 2003-08-26 09:42
引用:

syoさんの書き込み (2003-08-25 22:36) より:
submitのname/valueを取得して処理を行うということも考えたのですが、

1.submitでnameの値を統一してvalueを元に判断する場合、
 valueの値をform毎に変更しなければならない
 (たとえば全て「送信」という値にすることはできない)
2.逆にsubmitのnameの値で判断する場合、
 formの数だけ(といってもたかだか数個ではあるのですが)
 パラメータの取得を行う必要がある


それならKen-Labさんが回答しているようにhiddenにすればよいだけでは?
submitがhiddenになっても受け取る側は何も変更ないですし。
それよりHTMLのformは一つのformの中に複数のsubmitを持てるのですが、
なぜそうしないのでしょうか?
1

スキルアップ/キャリアアップ(JOB@IT)