【问题标题】:Loading Bootstrap modal in SQL while在 SQL 中加载 Bootstrap 模式,同时
【发布时间】:2016-02-18 05:45:37
【问题描述】:

我有以下功能

function articlesList($limit) { ?>
 <div class="table-responsive rounded mb-20">
 <table class="table table-striped table-theme">
    <thead>
         <tr>
             <th style="width: 5%;" class="text-center border-right">ID</th>
             <th style="width: 10%;" class="text-center">Image</th>
             <th style="width: 50%;">Name</th>
             <th style="width: 20%;">Date</th>
             <th style="width: 15%;" class="text-center">Actions</th>
         </tr>
    </thead>
    <tbody>
 <?php $sql = "SELECT * FROM articles ORDER BY ID DESC";
 $items = mysql_query($sql);
 while ($art = mysql_fetch_array($items)) { 
 $id = "$art[ID]"; ?>
    <tr>
        <td class="text-center border-right"><?=$art[ID]?></td>
        <td class="text-center"><img src="../media/articles/<?=$art[image]?>" class="img-bordered-theme" width="45" height="45"></td>
        <td><?=$art[name]?></td>
        <td><?=$art[date]?></td>
        <td class="text-center">
        <a href="?act=edit&amp;id=<?=$art[ID]?>" class="btn btn-success btn-sm rounded" data-toggle="tooltip" data-placement="top" data-original-title="Edit"><i class="fa fa-pencil"></i></a>
        <a href="#" class="btn btn-danger btn-sm rounded" data-toggle="modal" data-target=".remove_<?=$art[ID]?>" data-placement="top" data-original-title="Remove"><i class="fa fa-times"></i></a>
        </td>
    </tr>
     <!-- Start MODAL EVENTS -->
     <div class="remove_<?=$art[ID]?> modal fade" tabindex="-1" role="dialog" aria-hidden="true">
         <div class="modal-dialog modal-md" style="margin-top: 200px;">
             <div class="modal-content">
                <div class="modal-header">
                    <button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button>
                    <h4 class="modal-title">Remove article</h4>
                </div>
                <div class="modal-body"><p>Are you sure you want to remove the article <b><?=$art[name]?></b>?</p></div>
                 <div class="modal-footer">
                     <form name="input" action="?act=remove" method="post">
                         <input type="hidden" name="id" value="<?=$art[ID]?>">
                         <input type="hidden" name="name" value="<?=$art[name]?>">
                         <button type="button" class="btn btn-default" data-dismiss="modal">Cancel</button>
                         <button type="submit" class="btn btn-danger">Remove</button>
                     </form>
                 </div>
             </div>
         </div>
     </div>
     <!-- End MODAL EVENTS -->
 <?php } ?>
 </tbody>
 </table>
 </div>
 <?php } //function 

我的问题是模态框。加载效果很好,所有变量都传递了,但是在打开模式时发生了一些事情。

类似这样的:

按钮无法按下,我无法关闭盒子或做任何其他事情。

经过一些测试,如果我将模态代码放在 while 的底部,但在此之外,模态的效果很好。但是变量不能再传递了。

有什么解决办法吗?

【问题讨论】:

    标签: javascript php jquery sql twitter-bootstrap


    【解决方案1】:

    如果您将模态框放在循环之外,您可以使用BS modal event function 将值传递给模态框

    data-attribute 添加到模态触发按钮,例如data-id="&lt;?=$art[ID]?&gt;" 并从data-target 中删除&lt;?=$art[ID]?&gt;

    <a href="#" class="btn btn-danger btn-sm rounded" data-id="<?=$art[ID]?>" data-toggle="modal" data-target=".remove" data-placement="top" data-original-title="Remove"><i class="fa fa-times"></i></a>
    

    您必须传递给模态的第二个变量是&lt;?=$art[name]?&gt;,也可以添加另一个data-attribute,例如data-value="&lt;?=$art[ID]?&gt;"

    <td><span class="name" data-value="<?=$art[ID]?>"><?=$art[name]?></span></td>
    

    注意:您可以将data-value="&lt;?=$art[ID]?&gt;" 添加到任何页面元素并将其传递给模态。

    现在模态 HTML(循环外)将是 注意:我在modal中添加了&lt;span class="Mname"&gt;&lt;/span&gt;来显示名称,并在输入中添加了id's来传递值

    <!-- Start MODAL EVENTS -->
    <div class="remove modal fade" tabindex="-1" role="dialog" aria-hidden="true">
        <div class="modal-dialog modal-md" style="margin-top: 200px;">
            <div class="modal-content">
                <div class="modal-header">
                    <button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button>
                     <h4 class="modal-title">Remove article</h4>
                </div>
                <div class="modal-body">
                    <p>Are you sure you want to remove the article <b><span class="pname"></span></b> ?</p>
                </div>
                <div class="modal-footer">
                    <form name="input" action="?act=remove" method="post">
                        <input type="hidden" name="id" id="pid" value="">
                        <input type="hidden" name="name" id="pname" value="">
                        <button type="button" class="btn btn-default" data-dismiss="modal">Cancel</button>
                        <button type="submit" class="btn btn-danger">Remove</button>
                    </form>
                </div>
            </div>
        </div>
    </div>
    <!-- End MODAL EVENTS -->
    

    BS Modal 事件监听器脚本将是

    $(document).ready(function(){ //Dom Ready
        $('.remove').on('show.bs.modal', function (e) { //Show event listener
            //Fetch val from modal button data-attribute
            var id = $(e.relatedTarget).data('id');
            //fetch name which match the data-attribute val of modal button
            var name = $('.name[data-value="' + id +'"]').html();
            //you can pass any on page variable or information to modal like this by creating more variables like `var name`
            //Now Pass it to modal
            $(".pname").html(name); 
            $("#pid").val(id);
            $("#pname").val(name);
        });
    });
    

    Fiddle Example

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-11-30
      • 1970-01-01
      • 2016-11-20
      • 1970-01-01
      • 2019-05-13
      • 1970-01-01
      相关资源
      最近更新 更多