【发布时间】:2020-11-16 13:59:14
【问题描述】:
我正在尝试在引导模式中显示名为 prints 的 mysqli 数据库表中的相关图像和信息,然后在模式中显示图像、标题等... ajax 调用正在工作并加载响应的 div应该去,但其余的响应都没有填充模态?
我的代码如下:
数据库连接php:`
<?php
$dbhost = '*';
$dbuser = '*';
$dbpass = '*';
$dbname = '*';
$conn = mysqli_connect($dbhost, $dbuser, $dbpass, $dbname);
if(! $conn ) {
die('Could not connect: ' . mysqli_error());
}
//echo 'Connected successfully';
?>
这会正确连接并在需要时调用
我的主页,其中数据库用于显示相关表格中的缩略图,然后单击并使用模式弹出如下:
<?php include 'CreateDb.php';
ini_set('display_errors', 'on');
error_reporting(E_ALL);
$SQLprintsall = 'SELECT * FROM prints';
$printsall = mysqli_query($conn, $SQLprintsall);
?>
<div id ="shop-header">
<div id="cont-cart">
<p>BUY PRINTS</p>
<ul class="cart-actn">
<li><a class="fa fa-pound-sign" href="#"></a></li>
<li><a class="fa fa-shopping-cart" href="#"></a></li>
</ul>
</div>
<ul class="shop-filters">
<li class="filter-item">All</li>
<li class="filter-item"><a href="#">Landscapes</a></li>
<li class="filter-item"><a href="#">Animals</a></li>
<li class="filter-item"><a href="#">Europe</a></li>
<li class="filter-item"><a href="#">Scotland</a></li>
<li class="filter-item"><a href="#">England</a></li>
<li class="filter-item"><a href="#">Asia</a></li>
<li class="filter-item"><a href="#">Canada</a></li>
</ul>
</div>
<!--thumbnail images Loop-->
<div id="shop-thumbs">
<?php while($prints = mysqli_fetch_array($printsall)) : ?>
<div id="image-shop" class="image-holder">
<button type="button" data-id="<?php echo $prints['image']; ?>" class="img-btn btn-success
printinfo" >
<img src="<?=$prints['image_href']; ?>">
</button>
</div>
<?php endwhile; ?>
<!-- Modal -->
<div class="modal fade" id="empModal" role="dialog">
<div class="modal-dialog">
<!-- Modal content-->
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal">×</button>
</div>
<div class="modal-body">
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
</div>
</div>
</div>
</div>
<script>
$(document).on('click', '.printinfo', function(){
var printinfo = $(this).attr('data-id');
alert("'.$printinfo.'");
// AJAX request
$.ajax({
url: 'wp-content/themes/LEP/Modals/landscape-product-1.php',
type: 'post',
data: {printinfo: printinfo},
success: function(response){
console.log(printinfo);
alert(response);
// Add response in Modal body
$('.modal-body').html(response);
// Display Modal
$('#empModal').modal('toggle');
}
});
});
</script>
</div> <!-- end of containder from header.php -->
这然后调用模态弹出如下
<?php
include "CreateDb.php";
$printinfo = 0;
if(isset($_POST['printinfo'])){
$printinfo = mysqli_real_escape_string($conn,$_POST['printinfo']);
}
$sql = "SELECT * FROM prints WHERE id =" .$printinfo;
$result = mysqli_query($conn,$sql);
$response = "<div class='modal-holder'>";
while( $prints = mysqli_fetch_array($result)){
$id = $prints['image'];
$image = $prints['image_href'];
$title = $prints['image_title'];
$response .= "<div>";
$response .= "<h1>".$title."</h1>";
$response .= "</div>";
$response .= "<div>";
$response .= "<img src=".$image_href.">";
$response .= "</div>";
}
$response .= "</div>";
echo $response;
?>
点击后一切正常,但除了包含响应数据的 div 之外,模式不加载任何响应?
网站如上http://landscapephotoprints.co.uk
任何帮助将不胜感激
非常感谢
【问题讨论】:
-
您是否收到警报弹出?
alert(response); -
@GrumpyCrouton 是的两个警报,首先我知道点击正在工作,然后第二个警报显示一个对话框,其中包含应该完全填充响应数据的 div 的 html,对话框框显示 然后阻止额外的对话选项,它不显示任何其他数据
-
嗨,你能不能简单地
alert(printinfo)看看它是否显示正确的数据ID? -
您尝试过什么调试问题?这是 PHP 的问题,还是 jQuery 的问题?
-
这是我试图传递的数据的问题,并且数据库没有连接以查找相关信息,所以更多的是一个 sql 问题,然后我修改了我的方法以使用 json 编码来获取数据以更简单的方式