0

对于 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),并且对于处理此类场景的最佳实践也将有所帮助。

4

1 回答 1

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</>
于 2013-06-12T21:12:35.720 回答