Khan
Khan

Reputation: 43

Issue in passing a data id to bootstrap modal

I have a listing page containing a link button to show modal repeating in a PHP loop. I have searched and found these: Passing data to a bootstrap modal, Passing data to Bootstrap 3 Modal and Pass id to Bootstrap modal and some others but failed.

What I want

I have fetched the data id from database and pass it to bootstrap modal and there I will use this id to display more info through MySQL queries.

I have written all the code but the ID is not passing to the modal.

Modal Link Button code

 <a class="btn btn-warning btn-minier" href="#modal-form-show" role="button" data-toggle="modal" data-target="#myModal" data-id="<?php echo $cottage_id ?>"><i class="icon-edit bigger-120"></i> Reservation </a>

Modal code

 <!-- Modal -->
    <div id="myModal" class="modal fade" role="dialog">
      <div class="modal-dialog">

        <!-- Modal content-->
        <div class="modal-content">
          <div class="modal-header">
            <button type="button" class="close" data-dismiss="modal">&times;</button>
            <h4 class="modal-title">Reservation Details</h4><br>
            <h5>Cottage Id :</h5>
            <h5>Cottage Title :</h5>

          </div>
          <div class="modal-body">
            <p>ID WILL SHOW IN THIS TEXT FIELD.
           <input type="text" name="cottage" placeholder="cottage id" value="" id="cottage" /> 
            </p>
          </div>
          <div class="modal-footer">
            <button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
          </div>
        </div>

JS code

$('#modal-form-show').on('show.bs.modal', function(e) {
  var c_id= $('a[href="#modal-form-show"]').data('id');
  //var c_id= $(this).data(id) - checked both
  $("#cottage").val(c_id);
});

I have taken a text input in modal named cottage and I want show that id in this input.

Upvotes: 0

Views: 5818

Answers (3)

Asif Raza
Asif Raza

Reputation: 1021

I have change little , when button click show the popup & i've set the value of data-id=2

Button

<a class="btn btn-warning btn-minier" id="btnModalPopup" href="" role="button" data-toggle="modal" data-target="" data-id="2"><i class="icon-edit bigger-120"></i> Reservation </a>

I add button in you modal

    <div id="myModal" class="modal fade" role="dialog">
        <div class="modal-dialog">

            <!-- Modal content-->
            <div class="modal-content">
                <div class="modal-header">
                    <button type="button" class="close" data-dismiss="modal">&times;</button>
                    <h4 class="modal-title">Reservation Details</h4><br>
                    <h5>Cottage Id :</h5>
                    <h5>Cottage Title :</h5>

                </div>
                <div class="modal-body">
                    <p>
                        ID WILL SHOW IN THIS TEXT FIELD.
                        <input type="text" name="cottage" placeholder="cottage id" value="" id="cottage" readonly />
                    </p>
                </div>
                <div class="modal-footer">
                    <button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
                    <button type="button" class="btn btn-success" data-dismiss="modal" id="btnSubmit">Submit</button>

                </div>
            </div>
        </div>
    </div>

Javascript code

<script>
        $(document).ready(function () {
            $('#btnModalPopup').click(function () {

                var c_id = $(this).data('id');
                console.log(c_id)

                $('#myModal #cottage').val(c_id)
                $('#myModal').modal('show')

            });

   $('#btnSubmit').click(function () {

        alert('submit button click')

        // get the id , from input field.

        var id = document.getElementById('cottage').value;
        console.log(id)
        alert(id)

        //You can set the id - to php variable - then hit to sever by ajax
    })
        });


    </script>

Upvotes: 1

PHP Dev
PHP Dev

Reputation: 503

Try this snippet:

$('.btn-minier').click(function(){
  var c_id = $(this).attr('data-id');
  $('#cottage').val(c_id);
});

Upvotes: 4

redfades
redfades

Reputation: 394

Try using attr method of JQuery

$('#modal-form-show').on('show.bs.modal', function(e) {
    // instead of this
    //var c_id= $('a[href="#modal-form-show"]').data('id');
    // try this one
    var c_id= $('a[href="#modal-form-show"]').attr('data-id');
    //var c_id= $(this).data(id) - checked both
    $("#cottage").val(c_id);
});

Upvotes: 0

Related Questions