Php会话变量回声旧值

时间:2017-12-19 23:59:54

标签: php

你好,所以我的头文件中有一个session_start,这是每个php文件中都需要的。在我的头文件中,我有一个购物车图标,显示我的购物车文件中的商品数量。

我遇到的问题是购物车图标不显示当前的商品数量,除非在商品添加到购物车后再次刷新。

enter image description here

刷新购物车和图标后均等于20

enter image description here

header.php(包含会话开始)

<i class="fa fa-shopping-cart fa-3x" aria-hidden="true">
<?php 
    echo ($_SESSION['$q']);
?>
</i>

cart.php(需要header.php)

<?php
    $cart = json_decode(json_encode($_SESSION['cart']));
    $_SESSION['$s'] = 0;
    $_SESSION['$q'] = 0;
    $index = 0;
    for($i = 0; $i < count($cart); $i++)
    { 
        $_SESSION['$s'] += $cart[$i]->price * $cart[$i]->quantity;
        $_SESSION['$q'] += $cart[$i]->quantity; 
?>

我做错了什么?我知道我可以在添加项目时刷新页面,但我想远离使用它。

1 个答案:

答案 0 :(得分:1)

取决于您是否使用javascript / ajax将产品添加到购物车?如果您是,则页面已经呈现,因此购物车不会更改 - 您需要使用js手动更新购物车数量或进行页面刷新。

如果您不使用JS添加产品,那么在更新该会话中的新数量之前,您可能正在访问标题中的会话