php - 如何在 Bootstrap Modal 中传递 GET 变量?
问题描述
我的代码有问题。我想将 PHP 变量传递给引导模式。
这是我的代码:
我打开模式的链接:
<td><a class="btn btn-primary btn-xs" data-toggle="modal" data-target="#modal-user" href="userDetails.php?id_user=<?= $rel['id_user'] ;?>"><?= $rel['id_user'] ;?></a></td>
我的模态代码:
<div class="modal fade" tabindex="-1" role="dialog" aria-labelledby="modal-user" aria-hidden="true" id="modal-user">
<div class="modal-dialog modal-lg">
<?php
include('userDetails.php');
?>
</div>
</div>
和 userDetails.php 代码:
<?php
require 'connect.php';
if (isset($_GET['id_user']) && !empty($_GET['id_user'])) {
$idUser = $_GET['id_user'];
}
$sql = "SELECT * FROM users WHERE id_user=" .$bdd->quote($idUser);
$query = $bdd->query($sql);
$userDetails = $query->fetchAll(PDO::FETCH_ASSOC);
?>
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title">Infos</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">×</span>
</button>
</div>
<div class="modal-body">
<?php
foreach($userDetails as $details) {
?>
<p><?= $details['name'] ?></p>
<p><?= $details['firstname'] ?></p>
<?php
}
?>
</div>
</div>
另外,我有这个 jQuery 代码:
<script>
$( document ).ready(function() {
$('#modal-user').on('hidden.bs.modal', function () {
$(this).removeData('bs.modal');
});
});
</script>
我在看其他帖子,正常情况下,一切都应该没问题,但我有一个错误,我仍然不知道为什么......
注意:未定义变量:第 10 行 /Applications/MAMP/htdocs/directory/userDetails.php 中的 idUser
你能帮我吗 ?
解决方案
当您单击时,引导模式href
不会调用您的页面。当您include
userDetails.php
. 因此,您可以在之前定义 getinclude
或通过GET
变量传递用户 ID。
所以:
<div class="modal fade" tabindex="-1" role="dialog" aria-labelledby="modal-user" aria-hidden="true" id="modal-user">
<div class="modal-dialog modal-lg">
<?php
$_GET['id_user'] = $rel['id_user'];
include('userDetails.php');
?>
</div>
</div>
在一个循环中
如果您有一个循环并想通过它动态地执行它,jQuery
您可以执行以下操作:
从您的链接中删除引导调用,并添加一个触发器类modal-btn
并使其如下所示:
<a
class="btn btn-primary modal-btn btn-xs"
href="userDetails.php?id_user=<?= $rel['id_user'] ;?>"><?= $rel['id_user'] ;?>
</a>
更新您的模态结构并删除include()
:
<div class="modal fade" tabindex="-1" role="dialog" aria-labelledby="modal-user" aria-hidden="true" id="modal-user">
<div class="modal-dialog modal-lg">
<div class="modal-content"></div>
</div>
</div>
jQuery 应该获取href
链接的属性并调用bootstrap
模态函数load
并强制模态show
$(".modal-btn").on('click',function(e){ //trigger when link clicked
e.preventDefault();
$('#modal-user').modal('show'); //force modal to show
$('.modal-content').load( $(this).attr('href')); //load content from link's href
});
因此,您的页面userDetails.php
将被加载到模式中,您需要从中删除<div class="modal-content">...</div>
以避免重复...
推荐阅读
- android - 如何编写用于编辑录制的语音剪辑的代码
- android - 在包含数据绑定的布局时使用三元运算符
- c++ - 在拼接列表 C++ 时保持迭代器有效
- java - 确定 int 是否是 Java 中的回文?
- kubernetes - Kubectl 执行超时
- android - JSONArray 没有立即更新
- python - Django (djmoney):如何从 MoneyField 获取原始值?
- python - Python 3 Web Scrape & Beautiful Soup 标签属性
- javascript - 单击其他折线时如何停止将geojson折线strokeColor更改为默认值?
- javascript - 如何将此对象添加到数组中?