- PR -

一覧の複数の項目から一つの詳細を表示する場合について

1
投稿者投稿内容
ポン
ベテラン
会議室デビュー日: 2006/02/15
投稿数: 98
投稿日時: 2006-02-28 08:37
いつもお世話になっております。
現在Servletで検索画面→一覧→詳細と作っているのですが
一覧から詳細のところでどうしてもつまずきます。

検索画面での結果をJSPで表示させるのですが現在下記の様に書いております。

//データをHashmapに詰める
<%
for (int cnt = 0; cnt < detaillist.size(); cnt++) {
HashMap detailmap = (HashMap)(detaillist.get(cnt));
String strCell ="";
if (cnt % 2 != 1 ){
strCell ="#E0E0E0";
}
%>
//表示
<tr BGCOLOR="#E0E0E0">
<td colspan="1"><center><input type=checkbox name="ck1"></td>
<td colspan="1" align="center"><font size="2"><INPUT TYPE="HIDDEN" NAME="syain<%=su%>" VALUE=<%=(String)detailmap.get(CommonConst.SYAIN_CD)%>><%=(String)detailmap.get(CommonConst.SYAIN_CD)%>:<%=(String)detailmap.get(CommonConst.CHG_NAME1)%><%=(String)detailmap.get(CommonConst.CHG_NAME2)%></font></td>
<td colspan="1"><center><input type=checkbox <%=(String)detailmap.get(仮)%>></td>
<td colspan="1"><center><input type=checkbox <%=(String)detailmap.get(仮)%>></td>
<td colspan="1"><center><input type=checkbox <%=(String)detailmap.get(仮)%>></td>
<td colspan="1"><input type="submit" value="詳細" name="<%=ButtonID.B1102%>" onClick="test(this);">></td>
</tr>

<%
su++;
}
%>
</table>

この後詳細ボタンを押したら詳しい項目を出したいのですが
ここでつまずいています。
検索結果が一覧で5件出た場合どのようにしてその中の1件を見分けて
詳細画面に遷移させればいいのか分かりません。
最初自分はNAME="syain<%=su%>"でsyain1,syain2・・・と振っていき
Servlet側でreq.getParameter("syain"+su);
と記述しボタンを押せば値をとってくると思っていたのですが、
このやり方だとどのボタンでもどうしてもsyain1の値しかとってきません。
またButtonIDが固定のためButtonIDにはそれぞれ値が振れません。

何か良い方法はありませんでしょうか?
ご教授のほう宜しくお願い致します。

KOX
大ベテラン
会議室デビュー日: 2004/08/23
投稿数: 142
投稿日時: 2006-02-28 09:11
ボタン押下時のjavascpt「test(this,<%=su%>);」として、
サーブレットに何行目という値を渡すのどうでしょうか。
mio
ぬし
会議室デビュー日: 2005/08/25
投稿数: 734
お住まい・勤務地: 神奈川県
投稿日時: 2006-02-28 09:32
フォームを分けるとか。
uk
ぬし
会議室デビュー日: 2003/05/20
投稿数: 1155
お住まい・勤務地: 東京都
投稿日時: 2006-02-28 12:18
このような処理ではPOSTではなくGET、つまりボタンクリックではなくリンククリックで
詳細画面に遷移するように実装することが多いのですが、そのように変更はできないので
しょうか。どうしてもボタンにしたいのであれば、ボタンのイメージにリンクを貼るとか。
ポン
ベテラン
会議室デビュー日: 2006/02/15
投稿数: 98
投稿日時: 2006-02-28 12:46
ukさん mioさん KOXさん返答ありがとうございます。

>KOXさん
Javascriptの本を先ほどみたところ行番を値をとれるものがあったので
使ってみたいと思います。

>mioさん
すみません、当方の勉強不足でフォームを分けて値をとるにはどのようにすれば
よいか分かりませんでした。
もしよろしければご教授よろしくお願い致します。

>ukさん
すみません説明不足でした。画面遷移だけでしたらGETでも大丈夫なんですが・・・
値で詳細画面の項目を抽出しなければならないためどうしても値が必要なのです。
もしGETでも値がとれる方法があればご教授お願い致します。
ポン
ベテラン
会議室デビュー日: 2006/02/15
投稿数: 98
投稿日時: 2006-03-01 10:55
追加させて質問させて頂きます。

自分の勉強不足なのですが
JavaScriptの処理中にServletの方に値を渡すにはどうすればよいのでしょうか?
下記のソースの[su]の部分です。

function test(obj,su) {
alert(su);//試し表示
alert(obj.type);//試し表示
alert(obj.name);//試し表示
document.forms[0].BID.value = obj.name;
}

ご教授お願い致します。


ポン
ベテラン
会議室デビュー日: 2006/02/15
投稿数: 98
投稿日時: 2006-03-01 11:20
色々試していたところなんとかできました。

ありがとうございます。
1

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