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

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

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

ファイルシステムからファイル、データベースからレコードを削除することまたはメモリ内のオブジェクトの割り当てを取り消すことをさします。もしくは、HTTPプロトコルのDELETEを指すこともあります。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

checkbox

checkboxは、GUIのエレメントです。また、HTML<input>タグのtype属性で扱われる値を指します。

Q&A

1回答

4501閲覧

チェックボックスを用いた複数選択・削除について

akki27

総合スコア6

DELETE

ファイルシステムからファイル、データベースからレコードを削除することまたはメモリ内のオブジェクトの割り当てを取り消すことをさします。もしくは、HTTPプロトコルのDELETEを指すこともあります。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

checkbox

checkboxは、GUIのエレメントです。また、HTML<input>タグのtype属性で扱われる値を指します。

0グッド

0クリップ

投稿2018/06/22 07:30

前提・実現したいこと

JSPにて用意したデータに対して、チェックボックスで複数選択をして選択行のみを削除するコードを作成したいです。
+----+-----------+------------+------------+-------------+-------------+
| id | item_name | item_price | item_stock | insert_date | update_date |
+----+-----------+------------+------------+-------------+-------------+
| 3 | pen | 100 | 20 | NULL | NULL |
| 4 | pen | 100 | 20 | NULL | NULL |
| 5 | pen | 10 | 5 | NULL | NULL |
+----+-----------+------------+------------+-------------+-------------+
上記の3.4.5の横にチェックボックスを生成して、そのチェックボックスにチェックを入れた行のみを削除したいです。
idの数字の横にチェックボックスを生成して、チェックを入れた行すべて(3.pen.100.20など)を削除したいです。

発生している問題

チェックボックスを各項目の横に生成することはできましたが、チェックボックスとその行全体の関連付けがわかりません。
大変お手数ですが、よろしくお願いいたします。

該当のソースコード

jsp

<tr> <th>品名</th> <th>値段</th> <th>在庫個数</th> <th>削除</th> </tr>

<s:iterator value="imList">

<tr> <td><s:property value="itemName" /></td> <td><s:property value="itemPrice" /><span>円</span></td> <td><s:property value="itemStock" /><span>個</span></td> <td><input type="CHECKBOX" name="deleteSelectItem" value="2"></td> </tr> </s:iterator> </table> <s:form action="ItemManageAction"> <input type="hidden" name="deleteAllItem" value="1"> <s:submit value="一括削除" method="delete" /> </s:form> <s:form action="ItemManageAction"> <input type="hidden" name="selectDelete" value="1"> <s:submit value="選択削除" method="delete" /> </s:form>

補足情報(FW/ツールのバージョンなど)

java8
tomcat8
struts2
eclipse

よろしくお願いいたします。

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

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

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

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

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

m.ts10806

2018/06/22 08:02

プログラムコード(およびエラーメッセージ)は質問内容としては最も重要な部分であるため、見やすくしていただけると助かります。<code>ボタン押下→「コード」部分にコードを貼り付け→「ここに言語を入力」に対象言語名記入(エラーメッセージの場合は不要)の手順で「コードハイライト化」してください。(質問編集画面ではリアルタイムでプレビューが表示されるので見ながら調整してください)
akki27

2018/06/22 08:39

アドバイスありがとうございます。初質問のため、見にくくなってしまい申し訳ありません。改善いたします。
m.ts10806

2018/06/22 08:42

質問は編集できるので、編集してください。
guest

回答1

0

チェックボックスとその行全体の関連付けがわかりません。

一番簡単なのはJavaScriptによる制御です。

選択行のみを削除するコード

全体をformで囲み、送信すればサーブレット側にチェックした情報が送信されます。
チェックボックスの情報受け取り例は下記。

今はvalue=2と固定になっていますが、ここをidにすればidが送信されます。
あとは受け取ったidの削除処理を書くだけです。

idの数字の横にチェックボックスを生成して、チェックを入れた行すべて(3.pen.100.20など)を削除したいです。

ごめんなさい。意味が分かりかねます。
「行」はレコードのことです。「3.pen.100.20など」はそれぞれ「カラム」です。
用語の定義と実際にやりたいことに齟齬が見られます。
そのあたり整理していただけますか?

投稿2018/06/22 08:14

m.ts10806

総合スコア80850

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

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

akki27

2018/06/22 08:38

ご回答ありがとうございます。 ・idの数字の横にチェックボックスを生成して、チェックを入れた行すべて(3.pen.100.20など)を削除したいです。 についてですが、クライアントサイドの画面にて、表の一番左の一列にチェックボックス列を追加し、チェックをした場所のカラムをすべて削除できればと思っております。    +----+-----------+------------+------------+-------------+-------------+  Box | id | item_name | item_price | item_stock | insert_date | update_date |     +----+-----------+------------+------------+-------------+-------------+   □ | 3 | pen | 100 | 20 | NULL | NULL |   □ | 4 | pen | 100 | 20 | NULL | NULL |   □ | 5 | pen | 10 | 5 | NULL | NULL |     +----+-----------+------------+------------+-------------+-------------+ 上記のようにクライアントの画面で見た際には「3.4.5」の左側にチェックボックスがあり、3のチェックボックスにチェックを入れて削除ボタンを押すと3,pen,100,20のすべてを削除したいです。 以上で伝わりますでしょうか 初心者のため、説明が拙く大変申し訳ございません。 よろしくお願いいたします。
m.ts10806

2018/06/22 08:44

ごめんなさい分からないです。 > 選択行のみを削除するコード ができればそれで良いような。 それとも指定1レコードのみ削除したいということでしょうか? 1レコードのみ削除したいのであれば1つだけ選択すれば良いですし。 質問者さんにとって「削除」とはなんでしょう? delete文を実行して物理的に削除することでしょうか?それとも他に意図していることがあるのでしょうか?
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問