使用js / jQuery实时显示PHP变量的当前值

时间:2013-06-12 20:57:36

标签: php javascript html jquery

这对于可爱的专家来说似乎很容易在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)的示例代码,并且有助于处理此类场景的最佳实践。

1 个答案:

答案 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</>