[jQuery] DataTablesで行が開閉するアコーディオンを作る
開閉ボタンをクリックすると、テーブルの行が開いたり、閉じたりするアオーディオンの設置方法。
行ごとに開閉ボタンがあり、さらに「全部開く」と「全部閉じる」ボタンをつけた。
ある日付や、ワードでテーブル内を検索したいが、 1 行に情報量が多すぎて見た目が悪いのでなんとかしてほしいと言われたときに作った。検索対象の情報は非表示にしてもよかったけど、アコーディオンで隠しておけば見た目の問題は解決するし、親切だろう。
テーブルにアコーディオンを作る
サンプル
1 列目にある「 + 」または「全部開く」ボタンをクリックすると、行が開き隠れたコンテンツが表示される。
公式では Ajax でデータを取ってきているが、ここでは PHP で DB からデータを取ってきて、 HTML を組み立てた。
Ajax であれば画面表示後も、アコーディオンに入れたいデータを(テーブルに出力しておかなくても)保持できるが、 PHP 側で HTML を組み立てる場合には、アコーディオンに入れたいデータを、テーブルデータとしてあらかじめ出力しておく。
なので、テーブルを作成するときに、アコーディオンに入れたいデータを非表示カラムとして作っておく。そうすると js の function format ( d )
のところでデータを取得することができる。
コード
PHP & HTML
js
CSS
「開く」、「閉じる」のアイコンは Font Awesome を使用。