hiddenの値が期待した値で取得されないのです

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

QNo.2340587

すぐに回答ほしいです

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

ループ内にformを記述してみてはどうですか。

投稿日時 - 2006-08-15 13:01:31

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(3

ANo.3

質問を拝見して、

・HTMLのsubmitについて、理解出来ているのかな?
・ブラウザで表示されたHTMLのソース、見てないんだろうな?

と、思ってしまうのですが、いかがでしょうか?

formをデータの個数分作って、そこにhiddenでデータを埋め込むというのは、動くとは思うのですが、もしも客先提出するものだったら、ちょっと・・・と感じます(私的には、ですが)。なにせ、ブラウザ右クリックで「ソースの表示」したら、まるわかりですから。

私だったら、DBのプライマリーキー的な物をURLパラメタに
持たせて、サーバーで突合せをします。

また、どうしてもクライアント側で処理したい時は、jspでデータをJavaScriptの多次元配列に展開し、ボタンのsubmitではない)onClickイベントで、取得・表示させたこともあります。

投稿日時 - 2006-08-17 16:39:30

ANo.2

書かれた部分のソースだけの判断なら、

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

あなたにおすすめの質問

[PR] お役立ち情報

PR

PR

おすすめ特集

あなたの疑問にお答えします!
あなたの疑問にお答えします!

産経新聞社会部が、あなたの身の回りで起きている問題や疑問を徹底調査した上でご報告します。

ページの表示が早い!
ページの表示が早い!

MSN版Internet Explorer 8
ページ表示スピードが早くなる
最新ブラウザーをダウンロード