- ベストアンサー
コンボ-GetParameter
いつもお世話になっています。 今、下記のような感じでコンボをセットしてます。 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次元配列を作っておいて コードと名前を対応させるしかないですか? もっと簡単な方法ってあるのでしょうか?? 教えてください。。。
- みんなの回答 (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>
その他の回答 (1)
以下のようにOPTIONタグの値に取引先コードを設定すればいいのでは? > <SELECT NAME="SAK"> > <% > for(int k=0; k < wk.getCnt_sak(); k++){ > %> > <OPTION value="<%= 取引先コード値 %>"><%= wk.getCmb_sak()[k] %> > <% > } > %> > </SELECT><BR>
補足
spoonyさん、早い回答ありがとうございます!! タグ自体もあまりよく知らないまま 作ってるので、こういう初歩的な問題に すぐぶち当たってしまいます。。 ありがとうございました! Valueを使ってみます!
補足
kuro_73さん、いつもお世話になってます! >これのJavaScript的実現方法です。 いつも思うのですが、私が問題につまったとき、 だいたいのケースでスクリプトが登場するのですが、 JSPやServletを使う場合、スクリプトなしには 語れない!って感じなのですか? よくスクリプトのことをわかってないので そういうふうに感じます。 勉強の必要性はかなりありますか? サンプルコードありがとうございます! 参考にさせていただきました。 >後々の拡張のために というのは具体的な例をあげると、 どんなことが便利なんでしょうか。 まだまだわからないことだらけです。 ありがとうございました!