プロが教えるわが家の防犯対策術!

いつもお世話になっています。

今、下記のような感じでコンボをセットしてます。
JSPでのコーディングです。
得意先のデータ数をカウントして、(wk.getCnt_sak())
その分ループをまわしてます。で、
wk.getCmb_sak()[k]で、データをセットしています。

<SELECT NAME="SAK">
<%
for(int k=0; k < wk.getCnt_sak(); k++){
%>
<OPTION><%= wk.getCmb_sak()[k] %>
<%
}
%>
</SELECT><BR>

で、うまくセットされているんですが、
質問があります。

更新処理をするときに、この得意先が必要なんですが、
このコンボには、得意先名のみを表示しております。
そして、更新処理に必要なのは、得意先コードです。
たとえば、得意先名が重複したデータがある場合、
得意先コードは限定されません。(コードがKeyです)

なので、VBでは、ItemDataというプロパティがあって
コンボをセットするとき、データのインデックスが
オプションでつけれたので、そのインデックスを
取得していたのですが、
この場合はどのようにすればいいでしょうか??

2次元配列を作っておいて
コードと名前を対応させるしかないですか?
もっと簡単な方法ってあるのでしょうか??
教えてください。。。

A 回答 (2件)

No.1の回答が一般的なものだと思いますが、


後々の拡張のために、こんなこともできますというおまけ。
『2次元配列を作っておいてコードと名前を対応させるしかないですか? 』
これのJavaScript的実現方法です。

<SCRIPT Language = "JavaScript" type="text/JavaScript">
<!--
var sak = new Array();
//sak[0] = new Array("001","株式会社くろ");
//sak[1] = new Array("002","株式会社くろ");
//こういうのをJavaで吐き出す
<%
//for(int k=0; k < wk.getCnt_sak(); k++)
out.println("sak["+k+"]= new Array(\""+wk.get("取引先コード値")+"\",\""+wk.getCmb_sak()[k]+"\"");
%>
function chgSak(i){
//HIDDENタグに値を入れる
//取引先コード値
document.DATA.SAKCODE.value = sak[i][0];
//取引先名前
document.DATA.SAKNAME.value = sak[i][1];
}
-->
</SCRIT>
<BODY>
<FORM name='DATA'>
<INPUT type="hidden" name="SAKCODE">
<INPUT type="hidden" name="SAKNAME">

<SELECT NAME="SAK" onChange="chgSak(this.selectedIndex)">
<%
//ここ、Javaコードとテキストと混ぜないほうがいいですよ!
for(int k=0; k < wk.getCnt_sak(); k++){
out.println("<OPTION>"+ wk.getCmb_sak()[k]");
%>
</SELECT>
</FORM>
</BODY>

この回答への補足

kuro_73さん、いつもお世話になってます!

>これのJavaScript的実現方法です。

いつも思うのですが、私が問題につまったとき、
だいたいのケースでスクリプトが登場するのですが、
JSPやServletを使う場合、スクリプトなしには
語れない!って感じなのですか?
よくスクリプトのことをわかってないので
そういうふうに感じます。
勉強の必要性はかなりありますか?

サンプルコードありがとうございます!
参考にさせていただきました。

>後々の拡張のために

というのは具体的な例をあげると、
どんなことが便利なんでしょうか。
まだまだわからないことだらけです。

ありがとうございました!

補足日時:2001/08/24 16:58
    • good
    • 0

以下のようにOPTIONタグの値に取引先コードを設定すればいいのでは?



> <SELECT NAME="SAK">
> <%
>  for(int k=0; k < wk.getCnt_sak(); k++){
> %>
> <OPTION value="<%= 取引先コード値 %>"><%= wk.getCmb_sak()[k] %>
> <%
> }
> %>
> </SELECT><BR>

この回答への補足

spoonyさん、早い回答ありがとうございます!!

タグ自体もあまりよく知らないまま
作ってるので、こういう初歩的な問題に
すぐぶち当たってしまいます。。

ありがとうございました!
Valueを使ってみます!

補足日時:2001/08/24 16:50
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!