如何从链接将变量传递给模态

时间:2017-04-23 02:50:16

标签: php jquery twitter-bootstrap bootstrap-modal

我有一个带有一些链接的导航栏。链接都触发相同的模态,但我需要根据链接在模态内显示不同的信息。我更喜欢非jQuery解决方案,但如果有必要,我会接受它。

我试过了......

firstpage.php

    <li><a href="#theModal?viewmessages=mymessages" data-toggle="modal">My Messages</a></li>
    <li><a href="#theModal?viewnotifications=mynotifications" data-toggle="modal">My Notifications</a></li>

<!---Modal -->
  <div id="theModal" class="modal fade text-center">
    <div class="modal-dialog modal-lg">
      <div class="modal-content">
          <?php include 'modal.php';?>
      </div>
    </div>
  </div>
 <!-- Modal -->

modal.php

<!--
=============================
ISSET_GET MESSAGES 
=============================-->
<div class="modal-header">
        <button type="button" class="close" data-dismiss="modal">&times;</button>
        <h4 class="modal-title">Messages</h4>
      </div>
      <div class="modal-body">
        <p>some text here</p>
      </div>
      <div class="modal-footer">
        <button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
      </div>
<!--
=============================
ISSET_GET NOTIFICATIONS
=============================-->
<div class="modal-header">
        <button type="button" class="close" data-dismiss="modal">&times;</button>
        <h4 class="modal-title">Notifications</h4>
      </div>
      <div class="modal-body">
        <p>some text here</p>
      </div>
      <div class="modal-footer">
        <button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
      </div>

1 个答案:

答案 0 :(得分:2)

我认为你应该在页面底部渲染所有的模态,并使用jQuery来加载与链接相关的模态。

e.g。

<button type="button" class="btn btn-info btn-lg" id="myBtn1">Open Modal 1</button>

然后使用jQuery将bootstraps .modal()函数绑定到按钮的click事件。您可以在此处设置要加载的模态,例如

$("#myBtn1").click(function(){
    $("#myModal1").modal();
});

请运行我已从w3学校文档修改的代码段

<!DOCTYPE html>
<html lang="en">
<head>
  <title>Bootstrap Example</title>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.0/jquery.min.js"></script>
  <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
</head>
<body>

<div class="container">
  <h2>Activate multiple Modal with JavaScript</h2>
  <!-- Trigger the modal with a button -->
  <button type="button" class="btn btn-info btn-lg" id="myBtn1">Open Modal 1</button>
  <button type="button" class="btn btn-success btn-lg" id="myBtn2">Open Modal 2</button>

  <!-- Modal -->
  <div class="modal fade" id="myModal1" 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">Look its modal one</h4>
        </div>
        <div class="modal-body">
          <p>Some text in the modal.</p>
        </div>
        <div class="modal-footer">
          <button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
        </div>
      </div>
      
    </div>
  </div>
  
  <div class="modal fade" id="myModal2" 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">look its modal 2</h4>
        </div>
        <div class="modal-body">
          <p>Some text in the modal.</p>
        </div>
        <div class="modal-footer">
          <button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
        </div>
      </div>
      
    </div>
  </div>
  
</div>

<script>
$(document).ready(function(){
    $("#myBtn1").click(function(){
        $("#myModal1").modal();
    });
    $("#myBtn2").click(function(){
        $("#myModal2").modal();
    });
});
</script>

</body>
</html>

我修改的原始代码源:

  

https://www.w3schools.com/bootstrap/tryit.asp?filename=trybs_ref_js_modal_js&stacked=h