プログラム関係の備忘録。技術系記事1000記事以上を目指すブログ

【bootstrap】モーダルにパラメータを渡す方法

  • 2018年5月10日
  • 2019年5月20日
  • JavaScript
  • 35368view
  • 0件

はじめに

以下で解説しているのは、 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