保存并设置网页向下滚动的距离

时间:2011-04-13 18:00:44

标签: php html scroll

我正在用PHP构建购物卡丁车。此时用户将点击“添加到购物车”按钮添加项目。然后该按钮将运行一个单独的PHP脚本以将项目保存在购物车中,然后用户返回到购物页面。所有用户看到的是页面向后滚动到屏幕顶部。

在php中是否有一种方法可以保存页面向下滚动的距离,然后在重新加载页面时设置它,以便用户看到页面没有更改...谢谢

3 个答案:

答案 0 :(得分:1)

必须使用一些javascript在浏览器中完成。从var top = window.scrollTop提交之前获取该位置并将其传达给服务器(或存储在cookie中),然后在加载时调用window.scrollTo(top)以恢复位置。

答案 1 :(得分:0)

从它的声音来看,我认为你最好使用AJAX将产品提交到购物车。这样,用户点击链接,您可以弹出一条消息,在保存后更改购物车总数,用户无需完全重新加载页面。

如果您正在使用jQuery,则以下内容应该起作用:(未经过测试

$('.add-to-cart').click(function(){
     $.ajax({
          url:'cart.php?product=' + sku,
          success:function(){
               // Change the cart total and pop a message here
          }
     });
});

答案 2 :(得分:0)

不使用AJAX:

<强> browse.php:

<form action="cart.php" method="POST">
  <div id="product_12345">
      <!-- Product Info -->
      <button name="add_item" type="submit" value="12345">Add To Cart</button>
  </div>
  <div id="product_12346">
      <!-- Product Info -->
      <button name="add_item" type="submit" value="12346">Add To Cart</button>
  </div>
</form>

<强> cart.php:

<?php
if (isset($_POST['add_item'])) {
    // code to add product to cart
    header('Location: /browse.php#product_' + (int)$_POST['add_item']);
}
?>