成功的ajax请求后难以显示购物车预览

时间:2014-05-22 07:05:08

标签: php jquery ajax

我希望在特定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]

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函数。