質問編集履歴

4

解決方法を自己解決方法欄へ移動しました。

2019/10/05 03:19

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -55,137 +55,3 @@
55
55
  以下に.jsp部分を掲載させていただきます。~~
56
56
 
57
57
  [データソース部分とかlistで持ってくる方法がわからずべた書きしていますが、一応解決できました。]
58
-
59
- ```jsp
60
-
61
- // production_daily_report一覧表示リスト取得
62
-
63
- <%
64
-
65
- List<Production_daily_report> list = (List<Production_daily_report>) request.getAttribute("list");
66
-
67
- Production_daily_report production_daily_report_model = (Production_daily_report) request
68
-
69
- .getAttribute("production_daily_report");
70
-
71
- String co_id = production_daily_report_model == null
72
-
73
- ? ""
74
-
75
- : String.valueOf(production_daily_report_model.getCo_id());
76
-
77
- String company = production_daily_report_model == null ? "" : production_daily_report_model.getCompany();
78
-
79
- %>
80
-
81
- ```
82
-
83
- ```jsp
84
-
85
- // セレクトボックスcompanyのデータソース
86
-
87
- <%
88
-
89
- Connection SelCompanyDb = null;
90
-
91
- PreparedStatement SelCompanyPs = null;
92
-
93
- ResultSet SelCompanyRs = null;
94
-
95
- Class.forName("org.postgresql.Driver");
96
-
97
- SelCompanyDb = DriverManager
98
-
99
- .getConnection("jdbc:postgresql://localhost:5433/ncdb?user=ncadmin&password=nc1");
100
-
101
- String SelCompanySQL = "SELECT * FROM t_company ORDER BY co_id";
102
-
103
- SelCompanyPs = SelCompanyDb.prepareStatement(SelCompanySQL);
104
-
105
- SelCompanyRs = SelCompanyPs.executeQuery();
106
-
107
- %>
108
-
109
- ```
110
-
111
- ```javascript
112
-
113
- // production_daily_report一覧表示リストのco_idへ値設定
114
-
115
- <script language="JavaScript">
116
-
117
- function setCo_id(txt)
118
-
119
- {
120
-
121
- document.production_daily_report_form.co_id.value = txt;
122
-
123
- }
124
-
125
- </script>
126
-
127
- ```
128
-
129
- ```jsp
130
-
131
- <div class="form-group">
132
-
133
- <!--<label for="co_id">施工者(テキストボックス):</label> -->
134
-
135
- <input type="hidden" id="co_id" name="co_id" class="form-control"
136
-
137
- style="width: 0px;" value="<%=co_id%>">
138
-
139
- </div>
140
-
141
- <div class="form-group">
142
-
143
- <label for="co_id">施工者:</label>
144
-
145
- // onchangeでhiddenテキストボックスco_idに値設定
146
-
147
- <select
148
-
149
- onChange="setCo_id(this[this.selectedIndex].value)"
150
-
151
- id="Selco_id" name="company" class="form-control"
152
-
153
- style="width: 150px;">
154
-
155
- <%
156
-
157
- while (SelCompanyRs.next()) {
158
-
159
- %>
160
-
161
- <option value="<%=SelCompanyRs.getString("co_id")%>"><%=SelCompanyRs.getString("company")%></option>
162
-
163
- <%
164
-
165
- }
166
-
167
- %>
168
-
169
- </select>
170
-
171
- <script type="text/javascript">
172
-
173
- // .valueプロパティでhiddenテキストボックスco_idからセレクトボックスSelco_idへ取得
174
-
175
- document.getElementById('Selco_id').value = "<%=co_id%>";
176
-
177
- </script>
178
-
179
- </div>
180
-
181
- ```
182
-
183
- 上手に表現できませんが
184
-
185
- ・追加時はセレクトボックスのonchangeでhiddenテキストボックスにidを設定
186
-
187
- ・編集時はレコード一覧からco_idを取ってきてhiddenテキストボックスを介してフォームのセレクトボックスへidとvalueを設定
188
-
189
- ・更新時はhiddenテキストボックスのidで設定
190
-
191
- という仕組みで実現できました。

3

解決しました。

2019/10/05 03:19

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -42,15 +42,7 @@
42
42
 
43
43
  赤〇の[会社名(テキストボックス)]と
44
44
 
45
- 下の一覧レコードの[会社名]と同期させるには
45
+ 下の一覧レコードの[会社名]と同期させるにはどのようなロジックにすればよいでしょうか?
46
-
47
- セレクトボックスの規定値?
48
-
49
- 更新ボタンクリック時?
50
-
51
- javascript?
52
-
53
- どのようなロジックにすればよいでしょうか?
54
46
 
55
47
  なお、セレクトボックス以外は下の一覧レコードと同期していて
56
48
 
@@ -58,346 +50,142 @@
58
50
 
59
51
 
60
52
 
61
- controller部分、model部分、DAO部分ありますが文字数の関係で全て掲載できないようなので
53
+ ~~controller部分、model部分、DAO部分ありますが文字数の関係で全て掲載できないようなので
62
54
 
63
- 以下に.jsp部分を掲載させていただきます。
55
+ 以下に.jsp部分を掲載させていただきます。~~
64
56
 
65
- ```JSP
57
+ [データソース部分とかlistで持ってくる方法がわからずべた書きしていますが、一応解決できました。]
66
58
 
67
- <%@ page language="java" contentType="text/html; charset=UTF-8"
59
+ ```jsp
68
60
 
69
- pageEncoding="UTF-8" import="model.*,java.util.*"%>
61
+ // production_daily_report一覧表示リスト取得
70
62
 
71
63
  <%
72
64
 
73
- List<Production_daily_report> list=(List<Production_daily_report>)request.getAttribute("list");
65
+ List<Production_daily_report> list = (List<Production_daily_report>) request.getAttribute("list");
74
66
 
75
- Production_daily_report production_daily_report_model=(Production_daily_report)request.getAttribute("production_daily_report");
67
+ Production_daily_report production_daily_report_model = (Production_daily_report) request
76
68
 
77
- String Pdr_id=production_daily_report_model==null ? "":String.valueOf(production_daily_report_model.getPdr_id());
69
+ .getAttribute("production_daily_report");
78
70
 
79
- String Record_date=production_daily_report_model == null ? "":production_daily_report_model.getRecord_date();
71
+ String co_id = production_daily_report_model == null
80
72
 
81
- String Co_id=production_daily_report_model == null ? "":String.valueOf(production_daily_report_model.getCo_id());
73
+ ? ""
82
74
 
83
- String Fi_id=production_daily_report_model == null ? "":String.valueOf(production_daily_report_model.getFi_id());
75
+ : String.valueOf(production_daily_report_model.getCo_id());
84
76
 
85
- String St_id=production_daily_report_model == null ? "":String.valueOf(production_daily_report_model.getSt_id());
86
-
87
- String Ag_id=production_daily_report_model == null ? "":String.valueOf(production_daily_report_model.getAg_id());
88
-
89
- String Sl_id=production_daily_report_model == null ? "":String.valueOf(production_daily_report_model.getSl_id());
90
-
91
- String Quantity=production_daily_report_model == null ? "":production_daily_report_model.getQuantity();
77
+ String company = production_daily_report_model == null ? "" : production_daily_report_model.getCompany();
92
-
93
-
94
-
95
- String title=(String)request.getAttribute("title");
96
-
97
- title=title==null? "登録してください。":title;
98
-
99
- String err=(String)request.getAttribute("err");
100
-
101
- String msg=(String)request.getAttribute("msg");
102
78
 
103
79
  %>
104
80
 
105
- <%@ page import="java.sql.ResultSet" %>
81
+ ```
106
82
 
107
- <%@ page import="java.sql.SQLException" %>
83
+ ```jsp
108
84
 
109
- <%@ page import="java.sql.Statement" %>
85
+ // セレクトボックスcompanyのデータソース
110
86
 
111
- <%@ page import="java.sql.Connection" %>
87
+ <%
112
88
 
113
- <%@ page import="java.sql.DriverManager" %>
89
+ Connection SelCompanyDb = null;
114
90
 
115
- <%@ page import="java.sql.PreparedStatement" %>
91
+ PreparedStatement SelCompanyPs = null;
116
92
 
117
- <%Connection db = null;
93
+ ResultSet SelCompanyRs = null;
118
94
 
119
- PreparedStatement ps = null;
95
+ Class.forName("org.postgresql.Driver");
120
96
 
121
- ResultSet rs = null;
97
+ SelCompanyDb = DriverManager
122
98
 
123
- Class.forName("org.postgresql.Driver");
99
+ .getConnection("jdbc:postgresql://localhost:5433/ncdb?user=ncadmin&password=nc1");
124
100
 
125
- db = DriverManager.getConnection("jdbc:postgresql://localhost:5433/ncdb?user=ncadmin&password=nc1");
101
+ String SelCompanySQL = "SELECT * FROM t_company ORDER BY co_id";
126
102
 
103
+ SelCompanyPs = SelCompanyDb.prepareStatement(SelCompanySQL);
127
104
 
128
-
129
- String sSQL = "SELECT * FROM t_company ORDER BY co_id";
130
-
131
- ps = db.prepareStatement(sSQL);
132
-
133
- rs = ps.executeQuery();
105
+ SelCompanyRs = SelCompanyPs.executeQuery();
134
106
 
135
107
  %>
136
108
 
109
+ ```
137
110
 
111
+ ```javascript
138
112
 
139
- <!DOCTYPE html>
113
+ // production_daily_report一覧表示リストのco_idへ値設定
140
114
 
141
- <html>
115
+ <script language="JavaScript">
142
116
 
143
- <head>
117
+ function setCo_id(txt)
144
118
 
145
- <meta charset="UTF-8" />
119
+ {
146
120
 
147
- <meta name="viewport"
121
+ document.production_daily_report_form.co_id.value = txt;
148
122
 
149
- content="width=device-width, initial-scale=1, shrink-to-fit=no">
123
+ }
150
124
 
151
- <!-- Bootstrap CSS -->
125
+ </script>
152
126
 
153
- <link rel="stylesheet"
127
+ ```
154
128
 
155
- href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-beta/css/bootstrap.min.css"
129
+ ```jsp
156
130
 
157
- integrity="sha384-/Y6pD6FV/Vv2HJnA6t+vslU6fwYXjCFtcEpHbNJ0lyAFsXTsjBbfaDjzALeQsN6M"
131
+ <div class="form-group">
158
132
 
159
- crossorigin="anonymous">
133
+ <!--<label for="co_id">施工者(テキストボックス):</label> -->
160
134
 
135
+ <input type="hidden" id="co_id" name="co_id" class="form-control"
161
136
 
137
+ style="width: 0px;" value="<%=co_id%>">
162
138
 
163
- <title>Production_daily_report</title>
139
+ </div>
164
140
 
165
- <script type="text/javascript" src="setSelIdx.js"></script>
141
+ <div class="form-group">
166
142
 
167
- </head>
143
+ <label for="co_id">施工者:</label>
168
144
 
169
- <body>
145
+ // onchangeでhiddenテキストボックスco_idに値設定
170
146
 
171
- <div class="container" style="margin-top: 20px;">
147
+ <select
172
148
 
173
- <% if(err !=null){%>
149
+ onChange="setCo_id(this[this.selectedIndex].value)"
174
150
 
175
- <div class="alert alert-danger" role="alert">
151
+ id="Selco_id" name="company" class="form-control"
176
152
 
177
- <%=err %>
153
+ style="width: 150px;">
178
154
 
179
- </div>
155
+ <%
180
156
 
181
- <%} %>
157
+ while (SelCompanyRs.next()) {
182
158
 
183
- <% if(msg !=null){%>
159
+ %>
184
160
 
185
- <div class="alert alert-success" role="alert">
161
+ <option value="<%=SelCompanyRs.getString("co_id")%>"><%=SelCompanyRs.getString("company")%></option>
186
162
 
187
- <%=msg %>
163
+ <%
188
164
 
189
- </div>
165
+ }
190
166
 
191
- <%} %>
167
+ %>
192
168
 
193
- <a href="/NcApl/" class="btn btn-info">戻る</a>
169
+ </select>
194
170
 
195
- <p><%=title %></p>
171
+ <script type="text/javascript">
196
172
 
173
+ // .valueプロパティでhiddenテキストボックスco_idからセレクトボックスSelco_idへ取得
197
174
 
198
-
199
- <form action="/NcApl/production_daily_report_main" method="post">
200
-
201
- <div class="form-group">
202
-
203
- <label for="pdr_id">ID:</label> <input type="number" id="pdr_id"
204
-
205
- name="pdr_id" class="form-control" style="width: 200px;"
206
-
207
- value="<%=Pdr_id%>" disabled>
208
-
209
- </div>
210
-
211
- <div class="form-group">
212
-
213
- <label for="record_date">日付:</label> <input type="text"
214
-
215
- id="record_date" name="record_date" class="form-control"
216
-
217
- style="width: 200px;" value="<%=Record_date%>">
175
+ document.getElementById('Selco_id').value = "<%=co_id%>";
218
-
219
- </div>
220
-
221
- <div class="form-group">
222
-
223
- <label for="co_id">会社名(テキストボックス):</label> <input type="number" id="co_id"
224
-
225
- name="co_id" class="form-control" style="width: 200px;"
226
-
227
- value="<%=Co_id%>">
228
-
229
- </div>
230
-
231
- <div class="form-group">
232
-
233
- <label for="co_id">会社名(セレクトボックス):</label> <select id="co_id" name="company" class="form-control" style="width: 200px;">
234
-
235
- <%while (rs.next()) { %>
236
-
237
- <option value="<%=rs.getString("co_id")%>"><%=rs.getString("company")%></option>
238
-
239
- <%}%>
240
-
241
- </select>
242
-
243
- </div>
244
-
245
- <div class="form-group">
246
-
247
- <label for="fi_id">現場名:</label> <input type="number" id="fi_id"
248
-
249
- name="fi_id" class="form-control" style="width: 200px;"
250
-
251
- value="<%=Fi_id%>">
252
-
253
- </div>
254
-
255
- <div class="form-group">
256
-
257
- <label for="st_id">強度:</label> <input type="number" id="st_id"
258
-
259
- name="st_id" class="form-control" style="width: 200px;"
260
-
261
- value="<%=St_id%>">
262
-
263
- </div>
264
-
265
- <div class="form-group">
266
-
267
- <label for="ag_id">骨材:</label> <input type="number" id="ag_id"
268
-
269
- name="ag_id" class="form-control" style="width: 200px;"
270
-
271
- value="<%=Ag_id%>">
272
-
273
- </div>
274
-
275
- <div class="form-group">
276
-
277
- <label for="sl_id">スランプ:</label> <input type="number" id="sl_id"
278
-
279
- name="sl_id" class="form-control" style="width: 200px;"
280
-
281
- value="<%=Sl_id%>">
282
-
283
- </div>
284
-
285
- <div class="form-group">
286
-
287
- <label for="quantity">打設量:</label> <input type="text" id="quantity"
288
-
289
- name="quantity" class="form-control" style="width: 200px;"
290
-
291
- value="<%=Quantity%>">
292
-
293
- </div>
294
-
295
-
296
-
297
- <%if (!Pdr_id.isEmpty()) {%>
298
-
299
- <input type="hidden" id="pdr_id" value="<%=Pdr_id%>" onclick="setSelIdx('co_id', co_id);">
300
-
301
- <%} %>
302
-
303
- <button type="submit" class="btn btn-primary"><%=Pdr_id.isEmpty() ? "登録" : "更新"%></button>
304
-
305
- </form>
306
-
307
-
308
-
309
- <%if (list != null && list.size() > 0) {%>
310
-
311
- <table class="table table-striped mt-4">
312
-
313
- <tr>
314
-
315
- <th>ID</th>
316
-
317
- <th>日付</th>
318
-
319
- <th>会社名</th>
320
-
321
- <th>現場名</th>
322
-
323
- <th>強度</th>
324
-
325
- <th>骨材</th>
326
-
327
- <th>スランプ</th>
328
-
329
- <th>打設量</th>
330
-
331
- <th>編集</th>
332
-
333
- </tr>
334
-
335
- <%for (Production_daily_report p : list) {%>
336
-
337
- <tr>
338
-
339
- <td><%=p.getPdr_id()%></td>
340
-
341
- <th><%=p.getRecord_date()%></th>
342
-
343
- <th><%=p.getCo_id()%></th>
344
-
345
- <th><%=p.getFi_id()%></th>
346
-
347
- <th><%=p.getSt_id()%></th>
348
-
349
- <th><%=p.getAg_id()%></th>
350
-
351
- <th><%=p.getSl_id()%></th>
352
-
353
- <th><%=p.getQuantity()%></th>
354
-
355
- <td><a
356
-
357
- href="/NcApl/production_daily_report_main?action=update&pdr_id=<%=String.valueOf(p.getPdr_id())%>"
358
-
359
- class="btn btn-primary">更新</a> <a
360
-
361
- href="/NcApl/production_daily_report_main?action=delete&pdr_id=<%=String.valueOf(p.getPdr_id())%>"
362
-
363
- class="btn btn-danger" onclick="return confirm('削除してよろしいですか?');">削除</a>
364
-
365
- </td>
366
-
367
- </tr>
368
-
369
- <%} %>
370
-
371
- </table>
372
-
373
- <%} %>
374
-
375
- </div>
376
-
377
- <script>
378
-
379
- var forms = document.getElementsByClassNamed("form-control");
380
-
381
- var alerts = document.getElementsByClassName("alert");
382
-
383
- for (var i = 0; i < forms.length; i++) {
384
-
385
- forms[i].addEventListener("focus", function() {
386
-
387
- for (var j = 0; j < alerts.length; j++) {
388
-
389
- alerts[j].style.display = "none";
390
-
391
- }
392
-
393
- });
394
-
395
- }
396
176
 
397
177
  </script>
398
178
 
399
- </body>
179
+ </div>
400
-
401
- </html>
402
180
 
403
181
  ```
182
+
183
+ 上手に表現できませんが
184
+
185
+ ・追加時はセレクトボックスのonchangeでhiddenテキストボックスにidを設定
186
+
187
+ ・編集時はレコード一覧からco_idを取ってきてhiddenテキストボックスを介してフォームのセレクトボックスへidとvalueを設定
188
+
189
+ ・更新時はhiddenテキストボックスのidで設定
190
+
191
+ という仕組みで実現できました。

2

リンク記載方法の修正

2019/10/05 02:48

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -1,4 +1,4 @@
1
- http://joytas.net/programming/jspservlet08を参考に
1
+ [リンク内容](http://joytas.net/programming/jspservlet08)を参考に
2
2
 
3
3
  JSP+Postgresql11+eclipse2019-06で作成しています。
4
4
 

1

レコード一覧[営業日報]テーブルの列名変更

2019/09/11 03:06

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -24,7 +24,7 @@
24
24
 
25
25
  レコード一覧[営業日報]テーブル
26
26
 
27
- |ID|日付|会社名|現場名|強度|骨材|スランプ|打設量
27
+ |pdr_id|record_date|co_id|fi_id|st_id|ag_id|sl_id|quantity
28
28
 
29
29
  |--:|--:|--:|--:|--:|--:|--:|
30
30