いつもお世話になっています。
今、下記のような感じでコンボをセットしてます。
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次元配列を作っておいて
コードと名前を対応させるしかないですか?
もっと簡単な方法ってあるのでしょうか??
教えてください。。。
No.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を使う場合、スクリプトなしには
語れない!って感じなのですか?
よくスクリプトのことをわかってないので
そういうふうに感じます。
勉強の必要性はかなりありますか?
サンプルコードありがとうございます!
参考にさせていただきました。
>後々の拡張のために
というのは具体的な例をあげると、
どんなことが便利なんでしょうか。
まだまだわからないことだらけです。
ありがとうございました!
No.1
- 回答日時:
以下のようにOPTIONタグの値に取引先コードを設定すればいいのでは?
> <SELECT NAME="SAK">
> <%
> for(int k=0; k < wk.getCnt_sak(); k++){
> %>
> <OPTION value="<%= 取引先コード値 %>"><%= wk.getCmb_sak()[k] %>
> <%
> }
> %>
> </SELECT><BR>
この回答への補足
spoonyさん、早い回答ありがとうございます!!
タグ自体もあまりよく知らないまま
作ってるので、こういう初歩的な問題に
すぐぶち当たってしまいます。。
ありがとうございました!
Valueを使ってみます!
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) 追記する列を増やしたい 2つのデータを検索・照合して元データにないデータを下記マクロで商品名を追記し 9 2022/10/05 10:50
- JavaScript sessionStorageを調べています。 1 2023/06/20 12:41
- Visual Basic(VBA) VBAでのループ順序について 3 2023/03/13 10:55
- PHP 配列の値の更新方法について 1 2022/08/05 09:49
- Visual Basic(VBA) 列と行の名前(重複あり)が交差するセルに、データを入力したい 2 2022/06/25 22:42
- Visual Basic(VBA) ファイル全てを .xlsm に変更したところ、プログラムが途中で落ちてしまっています 17 2022/12/07 12:03
- Visual Basic(VBA) 先ほど、回答者様によって教えていただいたのですがどうしたらいいか分かりません。 ユーザーフォーム上に 2 2023/02/21 22:25
- Visual Basic(VBA) ユーザーフォーム「frm_基本❶」を立ち上げると新規で入力する行数を右下のNoとして表示しています。 1 2023/03/16 19:02
- C言語・C++・C# C言語初心者 ポインタについて、お助けください、、 2 2023/03/15 23:50
- Visual Basic(VBA) VBAで、シート間の転記するコードをFOR~NEXTで教えてください。 9 2023/04/30 20:04
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ループ処理の際、最後だけ","を...
-
java キーボード入力された値の...
-
数値⇒漢数字変換 java
-
論理演算子”||”またはの入力方法
-
続・ZZZ,ZZZ,ZZ9形式の金額形式...
-
Ctrl+Zが入力されると終了する...
-
countに実行した回数をいれたい...
-
Java、2の0乗~10乗の表示
-
テキストボックスに入力された...
-
コマンドライン引数の例外処理...
-
2つのスクロールバーを連動させ...
-
7つ数字を表示したら改行すると...
-
エラー(互換性の無い型)
-
階乗
-
入力データ数を入力して、その...
-
画面出力の際の繰り返しと入力...
-
入力された入力値と最大値、最...
-
キーボードから10人分の点数を...
-
C#の質問
-
フィールド名やメソッド名に日...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ループ処理の際、最後だけ","を...
-
続・ZZZ,ZZZ,ZZ9形式の金額形式...
-
Randomメソッドの確率設定
-
論理演算子”||”またはの入力方法
-
テキストボックスに入力された...
-
java キーボード入力された値の...
-
countに実行した回数をいれたい...
-
Java 配列<選挙>
-
総称型ArrayList<E>への参照...
-
Java、2の0乗~10乗の表示
-
2つのスクロールバーを連動させ...
-
数値⇒漢数字変換 java
-
Java 入力した整数値の合計を、...
-
配列を逆順させて表示させる方...
-
エラー(互換性の無い型)
-
javaで数独を解くプログラムに...
-
2次元配列の並び替え
-
javaのエラーが回収できない
-
7つ数字を表示したら改行すると...
-
java 電卓のプログラム
おすすめ情報