- - PR -
JSP(HTML)のチェックボックスでチェックされた値をServletに送ります。
1
| 投稿者 | 投稿内容 | ||||||||
|---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2002-09-20 01:47
こんにちは、境と申します。
JSP(HTML)のチェックボックスでチェックされた値をServletに送ります。 以下のようにするとrequest.getParameterValues("people")とするとチェックされている項目のVALUEがString配列で取ますが、 ひとつのチェックで2つ以上の値を渡す場合、 たとえば、"taro","man"の2つを取得したい場合は以下のように区切り文字をつけて渡し、 Servlet側で分割する方法しかないのでしょうか? <INPUT TYPE="checkbox" NAME="people" VALUE="taro&man"> <INPUT TYPE="checkbox" NAME="people" VALUE="hanako&womman"> <INPUT TYPE="checkbox" NAME="people" VALUE="sakura&woman"> <INPUT TYPE="checkbox" NAME="people" VALUE="yuki&man"> JAVASCRIPT等を使用してチェックされたらオブジェクトの属性に別々に入って、 それが配列になって飛んでくるような方法はないでしょうか また、一般的にこのような処理が必要な場合にどのようにして実現しているかを 教えてください。 よろしくおねがいします。 | ||||||||
|
投稿日時: 2002-09-20 09:28
http://java.sun.com/products/servlet/2.2/javadoc/javax/servlet/ServletRequest.html#getParameterValues(java.lang.String)
ということで、ServletRequest#getParameterValues(String)を利用すれば、 文字列の配列として、複数の情報を取得できるみたいです。(ごめんなさい、 実際には試していません。) | ||||||||
|
投稿日時: 2002-09-20 10:00
永井です。 XHTML1.1で同じnameのhidden要素を必要なだけ定義しておいて 各要素にはそれぞれ固有のidを振ります。 JavaScriptを使って、OnClickイベントを起点にして idで判別して必要なフラグをOn、Offすることによって実現出来る 気がします。 #フラグのOn、Offというよりは対象文字列と空文字列の代入ですが これで普通にsubmitすれば、いけると思いますが XHTML1.0以前のDTDに適合しているかは分かりません。 苦しいとは思うのですが。 #というより、XHTML1.1でも本当にアリなのか確認取ってないです。 #申し訳ありません。 ------------------------ もうちょっと一般的な方法ですと、 チェックボックスの内容をOnSubmitをトリガに全てチェックして、 必要な文字列を適当なhidden属性の値などに(独自の)区切り文字を挟みながら 生成する 方法があると思います。 こちらなら一般的なHTMLの書式に適合すると思います。 この方法の場合はセパレートを受け側でやる必要がありますが。 -------------------------- 調査の手がかりにでもなれば幸いです | ||||||||
|
投稿日時: 2002-09-20 11:03
永井です。自己補足。
急にXHTML1.1を出したのは、idとnameの完全な分化を期待したからです。 http://www.w3.org/TR/xhtml-modularization/abstract_modules.html#s_forms この辺りを見て、大丈夫そうかなーと思ったんですが、確証は無いです。
こちらの方は境さんが書かれていた方法そのままですね。 申し訳ないです。 個人的には受け側のプログラムに 「あるnameのvalueを全て受け取って、指定したデリミタでさらに分割して (重複を排除しながら)配列に格納する」 ような関数-request.getParameterValues(String str)にラップ被せたもの-でも作って、 最初に境さんか書かれていたような感じでベタに送信するのがいいかなと思います。 #無理してHTML&JavaScriptに押し付けるよりは [ メッセージ編集済み 編集者: 永井和彦 編集日時 2002-09-20 12:54 ] | ||||||||
|
投稿日時: 2002-09-20 11:23
すみません。自己補足の嵐です(TT
ちょっと眺めてみた感じ、HTML4.01Strictでも明確にnameはnameでCDATAですね。 http://www.w3.org/TR/html401/struct/links.html#anchors-with-id アンカーとidの問題辺りと混同していたようです。 意味不明の書き込みを連続でやってしまい、申し訳ないです。 #いいきっかけを与えていただいたおかげで、勉強になりました(^^ ……と、JavaScriptとidとnameの関係はどうだっただろう←また宿題が(TT | ||||||||
1
