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

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

詳細はこちら
JSP

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

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Bootstrap

BootstrapはウェブサイトデザインやUIのWebアプリケーションを素早く 作成する可能なCSSフレームワークです。 Twitter風のデザインを作成することができます。

Q&A

解決済

1回答

4986閲覧

Bootstrap4を使いテーブルをアコーディオンにする

TKM1165

総合スコア16

JSP

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

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Bootstrap

BootstrapはウェブサイトデザインやUIのWebアプリケーションを素早く 作成する可能なCSSフレームワークです。 Twitter風のデザインを作成することができます。

0グッド

1クリップ

投稿2019/11/26 00:51

編集2019/11/26 01:55
<table> <% for(int i=0;i<beanの.lengthの数分forを回す;i++) { %> <tr> <th colspan="2"><button class="btn btn-link" type="button" data-toggle="collapse" data-target="#collapse<%=i%>" aria-expanded="false" aria-controls="collapse<%=i%>"> <%=beanからfor文を使い各項目名か何かを表示%> </button></th> </tr> <div id="collapse<%=i%>" class="collapse" aria-labelledby="heading<%=i%>" data-parent="#accordion"> <div class="card-body"> <tr> <th>データ1</th> <th>データ2</th> </tr> <% for(int j=0;j<beanの.lengthでfor文を回す;j++) { %> <tr> <td> <%=beanを使い名前か何かを表示する%> </td> <td> <%=同上%> </td> <td><input type="button" class="btn btn-outline-primary" value="編集" onClick="DispPerson(javascriptでこの名前の人の情報を編集する画面へ)"> </td> </tr> </div> </div> </div> <% } } %> </div> </table>

以上のようなtableに(色々試した跡が残っていますが...)Bootstrap4を使い、一番上のcolspanがかけられた<th><button>がクリックされたら<th>データ1と<th>データ2から下の<td>がずらっとアコーディオンで表示されるという様なイメージの物を作ろうと考えていました。

最初はcolspanがかけられた<th>しか表示されてない想定です。

ちなみにbean関連を曖昧な書き方にしているのは、なにか個人的な物を特定されそうな文字列が使われている可能性があったためです。

直接<tr>にbootstrapのクラスを書いてみたり<div>で囲んでみたりしてみましたが、まだ<table>の構造を理解出来ていないからか、上手く使う事が出来ませんでした。

各個々のデータを編集するための編集ボタンが右側からはみ出る事になっているので、もし邪魔であれば消しても問題ありません。

ちなみにbootstrapの知識は本を見ながら書いていたため、ほぼ0に近いです。

どの様にしたら自分のイメージした動きをしてくれるでしょうか。

--追記--
イメージ説明

雑な作りだとは思いますが、イメージは伝わるかなと思います...。

親データ1を押したら親データ1が閉じる、2を押したら2が閉じるといったイメージです。

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

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

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

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

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

m.ts10806

2019/11/26 01:33

JSP記述は排除してブラウザから得られるHTMLを提示された方がアドバイスを得られやすくなると思います。 あとBootstrapはドキュメントが充実しています。ドキュメントは確認されたのでしょうか? あと… tableタグでアコーディオンはかなり無理やりのような。 どういう形をイメージしているのか図示されたほうが代替案ももらいやすくなると思います
TKM1165

2019/11/26 01:35

ドキュメント確認してないです、見てみます! やはりtableをアコーディオンにするのは難しいでしょうか。 その他の方法や図示を考えてみます。
m.ts10806

2019/11/26 01:40

>図示を考えてみます。 これはあくまで回答者に「こういう形のものを作りたい」と直接伝えるための手段を工夫してもらいたいためのもので、要は、質問を編集して追記いただきたいということです。
guest

回答1

0

ベストアンサー

table 直下に div は 書けないので修正してください。
アニメーションのため、tr や td ではなくセル内の要素に class をつけてみてください。

HTML

1 <tr> 2 <th colspan="2"><button class="btn btn-link" type="button" data-toggle="collapse" data-target=".collapse0" aria-expanded="true">親データ1</button></th> 3 </tr> 4 <tr> 5 <th><div class="collapse show collapse0">データ1</div></th> 6 <th><div class="collapse show collapse0">データ2</div></th> 7 </tr>

https://developer.mozilla.org/ja/docs/Web/HTML/Element/table
https://getbootstrap.com/docs/4.3/components/collapse/#multiple-targets

投稿2019/11/26 03:21

x_x

総合スコア13749

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

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

TKM1165

2019/11/26 04:38

回答ありがとうございます。 こんなにシンプルで良いのですね、驚きました。 今回教えていただいたコードを見てなんとなく本やドキュメントの参考の仕方が分かりました。 今後はもう少しシンプルな考え方をしていきたいと思います。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.36%

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

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

質問する

関連した質問