OKWAVEのAI「あい」が美容・健康の悩みに最適な回答をご提案!
-PR-
解決
済み

コンボ-GetParameter

  • すぐに回答を!
  • 質問No.123027
  • 閲覧数136
  • ありがとう数1
  • 気になる数0
  • 回答数2
  • コメント数0

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

今、下記のような感じでコンボをセットしてます。
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.2
レベル10

ベストアンサー率 28% (33/117)

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>
補足コメント
noname#2205

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

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

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

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

>後々の拡張のために

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

ありがとうございました!
投稿日時 - 2001-08-24 16:58:07
-PR-
-PR-

その他の回答 (全1件)

  • 回答No.1

以下のようにOPTIONタグの値に取引先コードを設定すればいいのでは? > <SELECT NAME="SAK"> > <% >  for(int k=0; k < wk.getCnt_sak(); k++){ > %> > <OPTION value="<%= 取引先コード値 %&g ...続きを読む
以下のようにOPTIONタグの値に取引先コードを設定すればいいのでは?

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

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

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

ありがとうございました!
Valueを使ってみます!
投稿日時 - 2001-08-24 16:50:08
このQ&Aのテーマ
このQ&Aで解決しましたか?
関連するQ&A
-PR-
-PR-
こんな書き方もあるよ!この情報は知ってる?あなたの知識を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


いま みんなが気になるQ&A

関連するQ&A

-PR-

ピックアップ

-PR-
ページ先頭へ