🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
Thymeleaf

Thymeleaf(タイムリーフ)とは、Java用のテンプレートエンジンで、特定のフレームワークに依存せず使用することが可能です。

Spring Boot

Spring Bootは、Javaのフレームワークの一つ。Springプロジェクトが提供する様々なフレームワークを統合した、アプリケーションを高速で開発するために設計されたフレームワークです。

Q&A

解決済

1回答

2370閲覧

th:eachで展開したDBデータにチェックボックスでチェックを付けたものを送信したい

yuu_info

総合スコア14

Thymeleaf

Thymeleaf(タイムリーフ)とは、Java用のテンプレートエンジンで、特定のフレームワークに依存せず使用することが可能です。

Spring Boot

Spring Bootは、Javaのフレームワークの一つ。Springプロジェクトが提供する様々なフレームワークを統合した、アプリケーションを高速で開発するために設計されたフレームワークです。

0グッド

0クリップ

投稿2021/02/18 00:53

###やりたいこと

<tr th:each="customer : ${custom}"> <td><input type="checkbox"></td> <td th:text="${customer.customid}"></td> <td th:text="${customer.custommei}"></td> </tr>

このようにチェックボックスのついたDBから持ってきたデータを、チェックを付けたもののみIDと名前をコントローラークラスに送信したいと考えています
チェックを付けられたものに属するデータはどう送信すればよいのでしょうか?

不慣れな物で質問内容も曖昧で申し訳ありませんが、どうかアドバイスを頂きたいです。

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

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

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

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

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

guest

回答1

0

ベストアンサー

コントローラークラスに送信したいと考えています

前提としてこの解釈は改められたほうが理解が進むと思います。
この手のアプリケーションは「リクエスト」と「レスポンス」で成り立っています。
コントローラはこのリクエストを受け取るマッピングがされているクラス(もしくは直接実行されるメソッド)の役割を果たすので、「○○というURLとパラメータでリクエストを送信してコントローラーで受け取る」が正しいかなと。
コントローラーに送信してるわけではなく、URLに送信し、マッピングされたクラス、メソッドが受け取るわけですから。

本題

何かしらでルールを設けるしかないと思います。
inputにtypeしかない状態では何も送信できません(formによるsubmitならname属性がないので送信されない)

用途次第ですが、custommeiまで送信する必要あるんでしょうか?
用途と設計と実装次第ですが、一般的なイメージだとcustomidだけで情報できそうに思います。

あとは、チェックボックスの情報が配列で送信されるようにして、valueに固有の情報入れて送信するだけかなと。

html

1<input type="checkbox" name="customid[]" th:value="${customer.customid}">

リクエスト受け取る方はその後の用途次第なので、現時点の提示内容だけだと他者には答えられません。

投稿2021/02/18 01:33

編集2021/02/18 01:56
m.ts10806

総合スコア80875

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

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

yuu_info

2021/02/18 01:41

ご回答ありがとうございます。なるほど、ご教示ありがとうございます。とても参考になります。 確かに本来であればcustomidとcustommeiは1:1で紐づいているのでいらないのですが、今回はあくまで一つのチェックボックスにcustomidとcustomnameの二つの情報をくっつけてリクエストを送信する方法があるかをお聞きしたかったのです。分かりづらくて申し訳ありません。
m.ts10806

2021/02/18 01:55

本回答の主旨は「ルールを設ければ可能」 基本そのルールは設計、実装する人が作ります。私の例でなにか見えると思ったのですけど。 hiddenとか忘れてません? JavaScriptも使うならdata属性も有用でしょう。
yuu_info

2021/02/18 02:03

data属性について詳しく調べてみます。ご回答ありがとうございました。
m.ts10806

2021/02/18 02:08

結局は何にどう使うか次第です。 data属性は普通にform送信してもリクエストパラメータに含まれないので(含まれるのはnameとvalueだけです)JavaScriptによる取得とリクエストに含ませる工夫が必要です。 Ajaxではよく用いられます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.36%

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

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

質問する

関連した質問