[英]Bootstrap Ajax Modal - Issues Showing Body and Footer
我试图显示一个Ajax模式,该模式将在提交时显示数据库值。 但是,我似乎无法从URL显示信息。 我对AJAX相对较新,因此这可能是一个非常简单的问题。
我用这个称呼模态(表中的多个)
<a class="btn btn-small btn-primary" data-toggle="modal" data-target="#exampleModal" data-whatever="<?php echo $Name = $row['Name']; ?>">Read More</a>
模态如下:
<!-- Modal -->
<div class="modal fade" id="exampleModal" tabindex="-1" role="dialog" aria-labelledby="memberModalLabel" aria-hidden="true">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal"><span aria-hidden="true">×</span><span class="sr-only">Close</span></button>
<h4 class="modal-title" id="memberModalLabel">Member Detail</h4>
</div>
<div class="dash">
</div>
</div>
</div>
</div>
和AJAX
$('#exampleModal').on('show.bs.modal', function (event) {
var button = $(event.relatedTarget) // Button that triggered the modal
var recipient = button.data('whatever') // Extract info from data-* attributes
var modal = $(this);
var dataString = recipient;
$.ajax({
type: "GET",
url: "getEventDetails.php",
data: dataString,
cache: false,
success: function (data) {
console.log(data);
modal.find('.ct').html(data);
},
error: function(err) {
console.log(err);
}
});
})
最后是AJAX中的模式:
$name = $_GET['name'];
//executes the SQL query
$result = mysql_query("SELECT * FROM Events WHERE Name = '$Name'");
if (isset($_POST)) {
while ($row = mysql_fetch_array($result)) {
$Date = $row['Date'];
$Name = $row['Name'];
$Type = $row['Type'];
$Region = $row['Region'];
}
}
?>
<!DOCTYPE html>
<html lang="en">
<head>
<!--Style Sheets-->
<link href ="css/bootstrap.min.css" rel="stylesheet">
<link href ="css/style.css" rel="stylesheet">
<link href ="css/font-awesome.css" rel="stylesheet">
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Using Bootstrap modal</title>
</head>
<body>
<div class="modal-body">
<?php echo $name ?>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
</div>
</body>
</html>
好吧,似乎在进行ajax调用时出现了问题。 如果我们在检查器的“网络”选项卡中查找,可以看到您对服务器的请求已被取消:
进一步查看控制台显示错误:
从这里可以看到,您的主站点已设置为可以通过HTTPS进行工作,但是您发出的请求并不安全。 仅出于故障排除目的,请尝试添加HTTPS作为协议的文件的完整路径。
$.ajax({
type: "GET",
url: "/getEventDetails.php/",
data: dataString,
cache: false,
success: function (data) {
console.log(data);
$('.dash').html(data);
},
error: function(err) {
console.log(err);
}
});
如果您查看从var_dump($_GET);
您会看到输出不太正确。
array(2) {
["Cardiff_Charity_Race"]=> string(0) ""
["_"]=> string(13) "1431438472999"
}
您会看到键“ Cardiff_Charity_Race”等于“”,而“ _”等于“ 1431438472999”。 这不是我们想要的。 我们希望“名称”等于“ Cardiff_Charity_Race”,例如:
array(1) {
["name"]=> string(0) "Cardiff Charity Race"
}
为此,请尝试按以下方式正确格式化dataString:
$('#exampleModal').on('show.bs.modal', function (event) {
var button = $(event.relatedTarget) // Button that triggered the modal
var recipient = button.data('whatever') // Extract info from data-* attributes
var modal = $(this);
var dataString = 'name=' + recipient;
console.log(dataString);
$.ajax({
type: "GET",
url: "getEventDetails.php",
data: dataString,
cache: false,
success: function (data) {
console.log(data);
modal.find('.ct').html(data);
},
error: function(err) {
console.log(err);
}
});
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.