hiddenの値が期待した値で取得されないのです
いつもお世話になっております。
for文の中で、押されたボタンのデータをhiddenで送信しようとしているのですが、
うまくいきません。
ソースは下記になります。
aaa.jsp
<%
for(int i = 0;i < list.size(); i++) {
caModel = (CategoryModel)list.get(i);
int i1 = caModel.getCategory();
int i2 = caModel.getCategory_sub();
String s1 = caModel.getCategory_name();
%>
<html:submit property="submit"><%=s1%></html:submit>
<%=i1%>,<%=i2%>
<input type="hidden" name="category" value="<%=i1%>">
<input type="hidden" name="category_sub" value="<%=i2%>">
<% } %>
途中でi1とi2を表示しているのですが、期待している通りに表示されます。[1,1]と[1,2]が表示。
これをservletで取得すると、
bbb.java
String st1 = request.getParameter("category");
String st2 = request.getParameter("category_sub");
System.out.println("st1 = " + st1);
System.out.println("st2 = " + st2);
2つ目のボタンを押して[1,2]を送信したいのですが[1,1]が表示されてしまいます。
分かる方がいましたら、ご教授下さい。よろしくお願い致します。
投稿日時 - 2006-08-15 12:52:04
質問者が選んだベストアンサー
このQ&Aは役に立ちましたか?
0人が「このQ&Aが役に立った」と投票しています
回答(3)
質問を拝見して、
・HTMLのsubmitについて、理解出来ているのかな?
・ブラウザで表示されたHTMLのソース、見てないんだろうな?
と、思ってしまうのですが、いかがでしょうか?
formをデータの個数分作って、そこにhiddenでデータを埋め込むというのは、動くとは思うのですが、もしも客先提出するものだったら、ちょっと・・・と感じます(私的には、ですが)。なにせ、ブラウザ右クリックで「ソースの表示」したら、まるわかりですから。
私だったら、DBのプライマリーキー的な物をURLパラメタに
持たせて、サーバーで突合せをします。
また、どうしてもクライアント側で処理したい時は、jspでデータをJavaScriptの多次元配列に展開し、ボタンのsubmitではない)onClickイベントで、取得・表示させたこともあります。
投稿日時 - 2006-08-17 16:39:30
書かれた部分のソースだけの判断なら、
hidden項目の名前が各行(複数行ですよね?)全て
name="category" と name="category_sub"
になっているのが原因です。
同一名だとどのデータを送っていいのか、IE側に分からないので
(なのでHTMLでは、思ったとおりに各値が設定されているはず。
送信時点で)
最初の奴を送っているように見えます。
というか、データは複数行で、取得側が1行分のみって・・・
人間でもどのデータを取得したいか分からないはずです。
(それとも、1,2だよって何か処理があるのでしょうか・・・)
回避方法は、
1.hidenフィールドの名前を全て別の名前にする。
name="category1" name="category_sub1"
name="category2" name="category_sub2"
name="category3" name="category_sub3"
で受け取り側でどれを受け取りたいか名前を指定する。
2.javaScript にて 送信データを選別して送信する。
3.#1の言われている通りFormを分けてjavaScriptによる
送信(Submit)制御を行う。
でしょうか。
投稿日時 - 2006-08-17 13:30:03
あなたにおすすめの質問
- sea_clear_sky8です。 sea_clear_sky8です。 [環境] Win98SE PWS [質問内容] 次のページ、前
- こんばんは。いつもお世話になっており... こんばんは。いつもお世話になっております。 初歩的な質問かと思いますが、書籍を参考に、hiddenで
- 失礼致します。 失礼致します。 質問させてください。 下にあるjspServletについて値の受け渡しに困っています
- こんにちは。 こんにちは。 セッションを使ったデータの受け渡しをしたいのですが、 (携帯を考慮してcookieは使
- ※以下プラグラムが走りません。どこに... ※以下プラグラムが走りません。どこに問題があるか教えて下さい。 <?php /*== ユー
- 同じform内に、ラジオボタンとサブ... 同じform内に、ラジオボタンとサブミットボタンを配置してあります。 ラジオボタンを押された時は自分
- いつもお世話になります。 いつもお世話になります。 selectboxの選ばれている項目の番号、いわゆるselectedIn
- 例えば 例えば <form method="get" action="このページ自身"> <select n
- javascriptを使っているかも... javascriptを使っているかもしれませんが、https://xxx.com/A というのがあっ
- sea_clear_skyです。 sea_clear_skyです。 [環境] Win98SE PWS フォームに名前が同じ二つのサ
[PR] お役立ち情報
PR
PR
カテゴリ
おすすめ特集
産経新聞社会部が、あなたの身の回りで起きている問題や疑問を徹底調査した上でご報告します。
MSN版Internet Explorer 8
ページ表示スピードが早くなる
最新ブラウザーをダウンロード