質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
JSP

JSP(Java Server Pages)とは、ウェブアプリケーションの表示レイヤーに使われるサーバーサイドの技術のことです。

PostgreSQL

PostgreSQLはオープンソースのオブジェクトリレーショナルデータベース管理システムです。 Oracle Databaseで使われるPL/SQLを参考に実装されたビルトイン言語で、Windows、 Mac、Linux、UNIX、MSなどいくつものプラットフォームに対応しています。

servlet

Servletとは、Webページの動的な生成やデータ処理などをサーバ上で実行するために、Javaで作成されたプログラムです。 ショッピングサイトやオンラインバンキングといった、動的なウェブサイトの構築に用いられています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

Q&A

1回答

9700閲覧

DBのデータをセレクトボックスで表示・編集する方法

退会済みユーザー

退会済みユーザー

総合スコア0

JSP

JSP(Java Server Pages)とは、ウェブアプリケーションの表示レイヤーに使われるサーバーサイドの技術のことです。

PostgreSQL

PostgreSQLはオープンソースのオブジェクトリレーショナルデータベース管理システムです。 Oracle Databaseで使われるPL/SQLを参考に実装されたビルトイン言語で、Windows、 Mac、Linux、UNIX、MSなどいくつものプラットフォームに対応しています。

servlet

Servletとは、Webページの動的な生成やデータ処理などをサーバ上で実行するために、Javaで作成されたプログラムです。 ショッピングサイトやオンラインバンキングといった、動的なウェブサイトの構築に用いられています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

0グッド

0クリップ

投稿2019/09/09 01:45

編集2022/01/12 10:55

JSPでDBのデータを表示してみています。
ブラウザでの表示レイアウトは
上側は1レコード分の入力・編集用フォーム
下側に全てのレコードの一覧を表示させています。

上側にはテキストボックスとセレクトボックスと[更新]ボタンを配置し
結果が下側のレコード一覧に反映されるというものです。

下側にはレコード毎に[編集][削除]ボタンを配置し
[編集]ボタンを押したら上側フォームに対象レコードのデータを抽出表示して
そこで各データを編集して、[更新]ボタンで更新されたレコードが
下側のレコード一覧に反映されるというような作りです。

★新規入力時
イメージ説明

お聞きしたいのは編集時に下側のレコードで[編集]ボタンを押して上側のフォームに反映する際
テキストボックスにはレコードIDに紐づいたデータが反映された状態ですが
セレクトボックスにはセレクトボックスのデータソースの先頭のデータが表示されている状態を
レコードに紐づけされたデータで表示するにはどのようにすれば良いかなのです。

★編集ボタンクリック時
ID2のレコードを編集していますが[会社名]セレクトボックスは先頭のデータのままです。
イメージ説明

セレクトボックスの<option selectedの規定値にレコードのキーを入れてやれば表示されるかなと考え
以下のように「rec.getString("co_id")と同じならば~」のようなイメージでコードを書いてみたりしているのですが
エラーにもなりませんが希望する動作にできません。

Java

1[セレクトボックスのデータソース部分] 2<%@ page import="java.sql.ResultSet"%> 3<%@ page import="java.sql.SQLException"%> 4<%@ page import="java.sql.Statement"%> 5<%@ page import="java.sql.Connection"%> 6<%@ page import="java.sql.DriverManager"%> 7<% 8 Connection connect = null; 9 Statement s = null; 10 11 try { 12 Class.forName("org.postgresql.Driver"); 13 14 connect = DriverManager.getConnection("jdbc:postgresql://localhost:5433/ncdb" + 15 "?user=ncadmin&password=nc1"); 16 17 s = connect.createStatement(); 18 19 String sql = "SELECT * FROM t_company ORDER BY co_id"; 20 21 ResultSet rec = s.executeQuery(sql); 22%> 23<% 24 } catch (Exception e) { 25 // TODO Auto-generated catch block 26 out.println(e.getMessage()); 27 e.printStackTrace(); 28 } 29 30 try { 31 if(s!=null){ 32 s.close(); 33 connect.close(); 34 } 35 } catch (SQLException e) { 36 // TODO Auto-generated catch block 37 out.println(e.getMessage()); 38 e.printStackTrace(); 39 } 40%>

html

1<label for="co_id">会社名:</label> 2<select id="co_id" name="co_id" class="form-control" style="width: 200px;"> 3 <%while((rec!=null) && (rec.next())) { %> 4 <% if (Objects.equals(rec.getString("co_id"), String.valueOf(Co_id))) {%> 5 <option value="<%=rec.getString("co_id")%> selected"><%=rec.getString("company")%></option> 6 <% }else{%> 7 <option value="<%=rec.getString("co_id")%>"><%=rec.getString("company")%></option> 8 <%}%> 9 <%}%> 10</select>

java

1[DBから(一覧)のデータソース部分] 2<% 3List<Production_daily_report> list=(List<Production_daily_report>)request.getAttribute("list"); 4Production_daily_report production_daily_report_model=(Production_daily_report)request.getAttribute("production_daily_report"); 5String Pdr_id=production_daily_report_model==null ? "":String.valueOf(production_daily_report_model.getPdr_id()); 6String Record_date=production_daily_report_model == null ? "":production_daily_report_model.getRecord_date(); 7String Co_id=production_daily_report_model == null ? "":String.valueOf(production_daily_report_model.getCo_id()); 8String Fi_id=production_daily_report_model == null ? "":String.valueOf(production_daily_report_model.getFi_id()); 9String St_id=production_daily_report_model == null ? "":String.valueOf(production_daily_report_model.getSt_id()); 10String Ag_id=production_daily_report_model == null ? "":String.valueOf(production_daily_report_model.getAg_id()); 11String Sl_id=production_daily_report_model == null ? "":String.valueOf(production_daily_report_model.getSl_id()); 12String Quantity=production_daily_report_model == null ? "":production_daily_report_model.getQuantity(); 13 14String title=(String)request.getAttribute("title"); 15title=title==null? "登録してください。":title; 16String err=(String)request.getAttribute("err"); 17String msg=(String)request.getAttribute("msg"); 18%>

本やWebで調べながらですがよくわからないことが多く
意味不明なことがあればすいません
よろしくご指導お願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

m.ts10806

2019/09/09 04:59

jspにロジック書くことってほとんどないと思いますけど。 String.valueOfで使ってるcol_idがどこから来たのか分かりません。 文字列比較するなら==ではダメですしね。
退会済みユーザー

退会済みユーザー

2019/09/09 05:36

ありがとうございます。 ==ではだめなのですね、すいません <% if (Objects.equals(rec.getString("co_id"), String.valueOf(Co_id))) {%> に書き直しましたがエラーにもなりませんが結果も変わりません。
m.ts10806

2019/09/09 05:52

結局のところ String.valueOf(Co_id) Co_id は 何が入ってくるのでしょうか。 equals書くなら↓になるとは思うのですけど rec.getString("co_id").equals( String.valueOf(Co_id) )
退会済みユーザー

退会済みユーザー

2019/09/09 06:09

Co_idにはDBのテーブルからco_id列の数値(Int)が入ってくる想定なのですが rec.getString("co_id").equals( String.valueOf(Co_id) )としたところ 例外 java.lang.NumberFormatException: For input string: "2 selected" となりました。
m.ts10806

2019/09/09 06:12

2 selected ? ちょっとデバッグでCo_idに何がきているか確認してみてください。 [DBから(一覧)のデータソース部分] からくるならそもそもStringで受け取ってるようにも見えます。
退会済みユーザー

退会済みユーザー

2019/09/09 06:13

質問で掲載させていただいた★編集ボタンクリック時画像で下のレコード一覧部分の会社名列の値(ID2のレコードは会社名2、ID8なら10)です。
m.ts10806

2019/09/09 06:15

実値を確認してもらいたいのですけど・・・ 「来てるはず」ではなく「実際に来ている値」です。どうやって確認しましたか?
m.ts10806

2019/09/09 06:18 編集

なんというか NumberFormatException が起きそうな箇所が見た感じ見当たらなかったもので。(大体は文字列を数値型に変換した際に起きるものだから) そのException どこで起きてますか?
退会済みユーザー

退会済みユーザー

2019/09/09 06:28

すいません、変数を書いているレコードにブレークポイントを付けてデバックで実行し[変数]から確認したところ""でした。
退会済みユーザー

退会済みユーザー

2019/09/10 23:03

すいません、再度しつもんさせていただきますので こちら閉じさせていただきます。
guest

回答1

0

JSP

1 <option value="<%=rec.getString("co_id")%> selected"><%=rec.getString("company")%></option>

JSP

1 <option value="<%=rec.getString("co_id")%>" selected><%=rec.getString("company")%></option>

selectedまでvalueの中に入ってるせいではないかと

投稿2019/09/11 02:44

shirokuma4690

総合スコア154

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問