はじめに
以下で解説しているのは、 bootstrapのモーダルを使って、パラメータを渡し、表示されたモーダル内にその内容を表示させる手段です。
具体例
・一覧画面から指定のボタンクリックで、そのリスト固有の値を表示させる
・データ削除時に一度確認表示をさせてから削除させたいとき。
実装方法
「画面に複数ある削除ボタンの一つをクリックした際に、そのボタン固有のパラメータを取得」する方法で書いていきます。
ボタン
<button type="button" data-sample="button1" data-toggle="modal" data-target="#myModal">削除</button>
<button type="button" data-sample="button2" data-toggle="modal" data-target="#myModal">削除</button>
モーダル
<div class="modal fade" id="myModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title"></h5>
<button type="button" class="close" data-dismiss="modal" aria-label="閉じる">
<span aria-hidden="true">×</span>
</button>
</div>
<div class="modal-body">
<p>確認メッセージ</p>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-dismiss="modal">キャンセル</button>
<button type="submit" class="btn btn-danger">{{ __('削除') }}</button>
</div>
</div>
</div>
</div>
javascript
// モーダルにパラメータ渡し
$('#myModal').on('show.bs.modal', function (event) {
var button = $(event.relatedTarget);
var sampledata = button.data('sample');
var modal = $(this);
modal.find('.modal-title').val(sampledata);
})
解説
data-***の形で渡したいパラメータを指定する。
<button type="button" data-sample="button2" data-toggle="modal" data-target="#myModal">削除</button>
$('#myModal').on('show.bs.modal', function (event) {
// ボタンを取得
var button = $(event.relatedTarget);
// data-***の部分を取得
var sampledata = button.data('sample');
var modal = $(this);
// モーダルに取得したパラメータを表示
// 以下ではh5のモーダルタイトルのクラス名を取得している
modal.find('.modal-title').val(sampledata);
})
最後に
参考にさせていただいた記事はこちら
https://qiita.com/sofpyon/items/1e72426598eed745f031