Is there a way to transmit to the modal div some data from the trigger button?
Here my code.
<button data-id="123" class="modal-trigger" href="#info-modal">OPEN 123</button>
<button data-id="456" class="modal-trigger" href="#info-modal">OPEN 456</button>
<div class="modal">
<div class="modal-content">
<h4>My Modal</h4>
<p>this info arrives from the data-id attribute on the trigger.</p>
</div>
<div class="modal-footer">
<a href="#!" class="modal-close waves-effect waves-red btn-flat">CLOSE</a>
</div>
</div>
<script>
jQuery( document ).ready(function($) {
$(".modal").modal({
onOpenStart: function(){
// changes the p content inside .modal-content from the data-id triggered button.
}
});
});
</script>
You can add click listener to your buttons and then when button is clicked you can use this
reference to grab value of data-id
attribute from button that is clicked and then put that value inside modal using .html()
method.
Here is a working example and your modified code:
<button data-id="123" class="modal-trigger" href="#info-modal">OPEN 123</button>
<button data-id="456" class="modal-trigger" href="#info-modal">OPEN 456</button>
<link rel="stylesheet" href="https://netdna.bootstrapcdn.com/bootstrap/3.1.1/css/bootstrap.min.css">
<div class="modal" id="modal">
<div class="modal-content">
<h4>My Modal</h4>
<p>this info arrives from the data-id attribute on the trigger.</p>
</div>
<div class="modal-footer">
<a href="#!" class="modal-close waves-effect waves-red btn-flat">CLOSE</a>
</div>
</div>
<!-- jQuery -->
<script src="https://code.jquery.com/jquery-3.3.1.slim.min.js" integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo" crossorigin="anonymous"></script>
<script src="https://netdna.bootstrapcdn.com/bootstrap/3.1.1/js/bootstrap.min.js"></script>
<!-- Have fun using Bootstrap JS -->
<script type="text/javascript">
$( document ).ready(function($) {
$(".modal-trigger").click(function(){
var data_id = $(this).attr('data-id');
$("#modal .modal-content p").html(data_id);
$('#modal').modal('show');
});
});
</script>