【问题标题】:Passing data-* to bootstrap Modal将 data-* 传递给引导模式
【发布时间】:2017-03-25 01:39:17
【问题描述】:

我已经看到了许多将数据传递给模式的搜索结果,所有这些结果都有可能的工作但不同的解决方案。我有一个 MySql DB,有一个非常简单的单表。我正在使用 PHP echo 将数据回显到 HTML 表中。最后的<td> 是一个引导按钮来触发一个模态。我无法让包含的代码工作以在模式中显示行数据。

这里有很多cmet,我正在学习。

<?php
/* mysql connect info */
$mysqlhost = '';
$mysqlusername = '';
$mysqlpassword = '';
$mysqldb = '';
?>

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge"> 
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Website | Login</title>
<link href="css/bootstrap.css" rel="stylesheet"> 
<link href="css/style.css" rel="stylesheet">

<?php    
$mysqli = new mysqli($mysqlhost, $mysqlusername, $mysqlpassword,  $mysqldb);

if (mysqli_connect_errno())
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}

$sql="SELECT * FROM leads";
$result=mysqli_query($mysqli,$sql);

// Associative array
$row=mysqli_fetch_assoc($result);
?>

<nav class="navbar navbar-inverse navbar-fixed-top">
<div class="container-fluid">
<div class="navbar-header">
  <h1>
    <a class="navbar-brand" href="#">
    <span class="glyphicon glyphicon-th-list" aria-hidden="true"> 
    </a>
  </h1>
</div> 
</div>
</nav>

<header id="header">
<div class="container-fluid">
<div class="row">
  <div class="col-md-12">
  </div>
</div>
</div>
</header>

<!-- Beginning of Sections -->
<section id="main">
<div class="container-fluid">
<div class="row">
<div class="col-md-12">
<div class="container">

<table class="table table-striped">
<thead>
  <tr>
    <!--<th>Lead Number</th>-->
    <th>First Name</th>
    <th>Last Name</th>
    <th>Moving Date</th>
    <th>eMail</th>
    <th>Phone</th>
    <th>From</th>
    <th>To</th>
    <th>Moving Size</th>
    <!--<th>IP Address</th>-->
    <!--<th>Source</th>-->
    <th>Submission Time</th>
    <th>Actions</th>
  </tr>
  </thead>
  <tbody>


<?php
 while($row=mysqli_fetch_assoc($result))
 {
 echo "<tr>";
/*echo "<td>" . $row["lead_id"] ."<td>";*/
 echo "<td>" . $row["customer_first_name"] ."</td>";
echo "<td>" . $row["customer_last_name"] ."</td>";
echo "<td>" . $row["moving_date"] ."</td>";
echo "<td>" . $row["customer_email"] ."</td>";
echo "<td>" . $row["customer_phone"] ."</td>";
echo "<td>" . $row["customer_from_zip"] ."</td>";
echo "<td>" . $row["customer_to_zip"] ."</td>";
echo "<td>" . $row["customer_moving_size"] ."</td>";
/*echo "<td>" . $row["customer_ip_address"] ."<td>";*/
/*echo "<td>" . $row["lead_handle"] ."</td>";*/
echo "<td>" . $row["sent_date"] ."</td>";
echo "<td> <button type=\"button\" class=\"btn btn-primary btn-sm\    data-toggle=\"modal\" data-target=\"#myModal\" data-id=\"". $row["lead_id"]."\">Edit</button></td>";
echo "</tr>";   }
echo "</tbody>";
echo "</table>";

?>


<!-- Button trigger modal -->

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


</section>



<footer id="footerindex">
<div class="container-fluid">
  <div class="row">
    <div class="col-md-12">      
  </div>
</div>
</footer>

</div>









 <!-- Bootstrap core JavaScript
================================================== -->
<!-- Placed at the end of the document so the pages load faster -->
<!-- this is google jquery library-->

<script src="js/jquery-3.1.1.js"></script>
<script src="js/bootstrap.js"></script>
<script src="js/my.js"></script> 
<!-- This is the functionality of the login screen -->

<!-- at one point the drop down was not working because we did not include the bootstrap.js which much come after the initial include to the jquery library-->

<script type="text/javascript" src="/js/jquery-3.1.1.js">

$('#myModal').on('show.bs.modal', function (event) {
  var button = $(event.relatedTarget) 
  var id = button.data('id') 
  var modal = $(this)
  modal.find('.modal-title').text('Lead Number ' + id)
  modal.find('.modal-body input').val(recipient)
})

</script>



<!-- MODAL BEGIND -->

<div class="modal fade" id="myModal" tabindex="-1" role="dialog">
<div class="modal-dialog" role="document">
<div class="modal-content">
  <div class="modal-header">
    <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
    <h4 class="modal-title">Modal title</h4>
  </div>
  <div class="modal-body1">
    <p>One fine body&hellip;</p>
  </div>
  <div class="modal-footer">
    <button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
    <button type="button" class="btn btn-primary">Save changes</button>
  </div>
</div><!-- /.modal-content -->
</div><!-- /.modal-dialog -->
</div><!-- /.modal -->

</body>
</html>

您能否告诉我您是否可以在 html 中添加 jQuery 脚本,它们是否会覆盖其他 jquery 以激活模态?

【问题讨论】:

    标签: php jquery mysql bootstrap-modal


    【解决方案1】:
    1. 很好地使用缩进让代码更整洁。

    2. &lt;script ~~&gt; 也是一个类似 div , p , h1 的标签,但它有 display : none 。所以当然你可以在 html 文件中添加&lt;script&gt; 标签。没关系。

    3. 当浏览器遇到&lt;script src = "jquery.js"&gt; 时,浏览器会从服务器(在本例中为您的服务器)获取 jquery.js 代码。因此,您不能覆盖其他 js 代码。只是浏览器的工作量翻了一番,jquery代码被读取了两次。

    4. 我不明白你在做什么,特别是 &lt;script type="text/javascript" src="/js/jquery-3.1.1.js"&gt; 代码。您已经在上面包含了 jquery-3.1.1.js!你为什么这样做?

    5. 无论如何,浏览器在读取代码的时间(或时间?)中找不到#myModal $('#myModal').on('show.bs.modal', function (event) { ~~ .所以代码应该在模型div下。

    快乐编码^^。

    【讨论】:

    • 谢谢。我感谢您的回应和帮助。你确实解决了我的问题。我对缩进的问题是当我复制/粘贴代码时——我必须在每行放置 4 个空格以使其显示为问题的代码。也许有更好的方法来做到这一点?再次感谢。
    • 根据具体情况使用什么缩进。但是,通常是 4 个缩进或 2 个缩进! .
    猜你喜欢
    • 2016-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-27
    • 2014-01-05
    • 2013-07-21
    • 2020-06-13
    • 2015-11-17
    相关资源
    最近更新 更多