我希望在特定div shopbag
上的悬停事件上显示购物车预览。为此,我所做的是我添加了一个div livebag
&在里面我添加了一个查询(因为我将购物车商品存储到数据库中)来搜索商品&预览它们。最初div是隐藏的&鼠标悬停事件div livebag
可见。
我已将addtocart工具直接包含在我的搜索框中。该项目通过ajax请求添加到购物车,因此在添加产品时,div shopbag
会更新为购物车中的新项目。
现在,当我尝试显示购物车预览时,它不会显示更新的数据。
这是我的代码:
的header.php
<script>
$(document).ready(function(){
$(document).on('mouseenter','#shopbag',function(e){
$("#livebag").css("display","block");
});
$(document).delegate('.buynow','click', function(e){
$.ajax({
type: "POST",
url: "addtocart.php",
context: this,
data: {type:type,quantity:quantity,productid:productid},
success: function(option){
$('#shopbag').empty();
$('#shopbag').replaceWith(option);
});
});
</script>
<body>
<?php
echo "<div id='shopbag'>Cart {$number}</div>";
echo "<div id='livebag'>";
$query="select * from cart";
foreach($query as $row){
echo $row['name'];
}
echo "</div>";
?>
</body>
addtocart.php(ajax文件)
echo "<div id='shopbag'>Cart {$proInCart}</div>";
如果我们可以刷新div livebag
,我猜它可以解决问题。对此有何帮助?
![分区图片] [1]
答案 0 :(得分:1)
如果我是你,我会做以下事情:
将livebag
div的生成移动到另一个文件,但保留实际的div。包括该文件:
<div>
<div id="shopbag">...</div>
<div id="livebag">
<?php include 'livebag.php'; ?>
</div>
</div>
您的livebag.php
应该包含以下内容:
<?php
...
...
...
$items = $con->query(...);
foreach($items as $item)
{
echo '
<div class="item">
...
</div>';
}
完成您的请求后,请执行以下操作:
$("#livebag").load('livebag.php');
请注意,我不知道您的HTML结构,所以这只是粗糙的东西。
查看jquery load函数。