将数据id传递给bootstrap模式时出现问题

时间:2017-04-20 11:06:41

标签: javascript php jquery bootstrap-modal

我有一个列表页面,其中包含一个链接按钮,用于在PHP循环中显示模式重复。我搜索过并找到了这些: Passing data to a bootstrap modalPassing data to Bootstrap 3 ModalPass id to Bootstrap modal以及其他一些但失败了。

我想要什么

我从数据库中获取了数据id并将其传递给bootstrap模式,在那里我将使用此id通过MySQL查询显示更多信息。

我已经编写了所有代码,但ID没有传递给模态。

模态链接按钮代码

 <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 -->
    <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代码

$('#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);
});

我已经在名为cottage的模态中输入了一个文本输入,我希望在此输入中显示该ID。

3 个答案:

答案 0 :(得分:4)

试试这个代码段:

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

答案 1 :(得分:1)

当按钮点击显示弹出窗口时,我的变化很小。我已设置data-id = 2

的值

按钮

<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>

我在你的模态中添加了按钮

    <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代码

<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>

答案 2 :(得分:0)

尝试使用JQuery的attr方法

$('#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);
});