这对于可爱的专家来说似乎很容易在SO :)但我无法在SO或谷歌上找到关于此的正确答案/问题。请帮忙。 :)
如何通过AJAX / js / jQuery实时显示php变量的当前值
基本上我试图做一个电子商务网站,我正在使用一个会话存储购物车内容,并用一个echo语句显示它,计算当前篮子中有多少内容,但是当它们在某个产品上时尝试将它添加到购物车中,购物车的价值不会回显添加的项目,直到页面刷新,所以我需要类似AJAX的东西来显示添加项目时没有页面的会话的更新值刷新。
非常感谢你。
以下是我购物车的代码段:
// Assign shopping cart ($_SESSION['cart']) into variable
$basket = count($_SESSION['cart']);
用于显示:
<!-- Display contents of the shopping cart -->
<ul id="basket" class="clearfix">
<li class="top">
<a href="checkout.php" class="top_link">
<span>Items: <? echo $basket ?></span>
</a>
</li>
</ul>
非常感谢..请提供一个关于如何实现这一点(js或jQuery)的示例代码,并且有助于处理此类场景的最佳实践。
答案 0 :(得分:0)
第一个解决方案(根据您的要求 - BAD IDEA)
get-count-items.php
<?php
session_start();
die(count($_SESSION['cart']));
?>
Javascript
<script>
setInterval(function(){
$.post('get-count-items.php', {}, function (total_items){
$('#total-items').html(total_items);
});
}, '1000');
</script>
HTML
<ul id="basket" class="clearfix">
<li class="top">
<a href="checkout.php" class="top_link">
<span>Items: <span id="total-items"><? echo $basket ?></span></span>
</a>
</li>
</ul>
此javascript将每隔1秒向服务器发出一次请求。
第二个解决方案(按钮上的事件“添加到购物车”)
add-to-cart.php
<?php
session_start();
// code for add to cart...
die(count($_SESSION['cart']));
?>
Javascript
<script>
$('.add-to-cart').click(function(){
$.post('add-to-cart.php', {}, function (total_items){
$('#total-items').html(items);
});
return false;
});
</script>
HTML
<ul id="basket" class="clearfix">
<li class="top">
<a href="checkout.php" class="top_link">
<span>Items: <span id="total-items"><? echo $basket ?></span></span>
</a>
</li>
</ul>
<a href="" class="add-to-cart">Add to cart</>