初学者制作简易购物车发生错误,求解答???感谢!!!

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>简易购物车</title>
    <script src="jquery.min.js"></script>
    <script>
        $(document).ready(function(){
            //获取重量,得出小计与总计
            //change(),元素值发生改变触发
            $(".quantity").change(function(){
                var quantity = $(this).val();
                var price = $(this).closest("tr").find(".price").text();
                var subtotal = quantity * price;
                if(quantity<0){
                    //closest查找tr里的小计
                    $(this).closest("tr").find(".subtotal").text("输入错误");
                } 
                else{
                    $(this).closest("tr").find(".subtotal").text(subtotal.toFixed(2));
                }
                updateTotal();
            });
            $(".addToCart").click(function(){
                $(this).css("color","red");
                var itemID = $(this).attr("data-item");
                var quantity = $(this).closest("tr").find(".quantity").val();
                var price = $(this).closest("tr").find(".price").text();
                var subtotal = quantity * price;
                //向php发送请求,提交数据
                $.post("addToCart.php", {itemID: itemID, quantity: quantity,subtotal:subtotal},function(response){console.log(response);
                });
            });
            function updateTotal(){
                var total = 0;
                $(".subtotal").each(function(){
                    var subtotal = parseFloat($(this).text());
                    if(!isNaN(subtotal)){
                        total += subtotal;}
                });
                $.post("addToCart.php", {total:total},function(response){console.log(response);});
                $("#total").text(total);
            }
        });
    </script>
<style type="text/css">
    .c1 {width: 40px;height: 40px;}
</style>
</head>
<body>
<table border="1">
    <thead>
        <tr>
            <th>商品</th>
            <th>单价</th>
            <th>重量(kg)</th>
            <th>小计</th>
            <th>操作</th>
        </tr>
    </thead>
    <tbody>
        <tr>
            <td><img class="c1" src="sc/xlh.jpg">西兰花</td>
            <td class="price">9.3</td>
            <td><input type="number" class="quantity" value="0" min="0"></td>
            <td class="subtotal">0</td>
            <td><button class="addToCart" data-item="1">加入购物车</button>
            </td>
        </tr>
        <tr>
            <td><img class="c1" src="sc/hg.jpg">黄瓜</td>
            <td class="price">3.2</td>
            <td><input type="number" class="quantity" value="0" min="0"></td>
            <td class="subtotal">0</td>
            <td><button class="addToCart" data-item="2">加入购物车</button></td>
        </tr>
        <tr>
            <td><img class="c1" src="sc/xhs.jpg">西红柿</td>
            <td class="price">2.7</td>
            <td><input type="number" class="quantity" value="0" min="0"></td>
            <td class="subtotal">0</td>
            <td><button class="addToCart" data-item="3">加入购物车</button></td>
        </tr>
        <tr>
            <td><img class="c1" src="sc/ym.jpg">玉米</td>
            <td class="price">1.1</td>
            <td><input type="number" class="quantity" value="0" min="0"></td>
            <td class="subtotal">0</td>
            <td><button class="addToCart" data-item="4">加入购物车</button></td>
        </tr>
        <tr>
            <td><img class="c1" src="sc/wj.jpg">莴苣</td>
            <td class="price">5.1</td>
            <td><input type="number" class="quantity" value="0" min="0"></td>
            <td class="subtotal">0</td>
            <td><button class="addToCart" data-item="5">加入购物车</button></td>
        </tr>
    </tbody>
</table>
<h2>总计: <span id="total">0</span></h2>
<div id="cart"></div>
<a href="addToCart.php">去结算</a>
</body>
</html>

以上是我的购物车HTML,下面是我存在错误的PHP代码。

<?php
session_start();
$itemID=$_POST['itemID'];
$quantity=$_POST['quantity'];
$subtotal=$_POST['subtotal'];
if(isset($_SESSION['cart'][$itemID])){
    // 如果存在,更新数量和小计
    $_SESSION['cart'][$itemID]['quantity'] = $quantity;
    $_SESSION['cart'][$itemID]['subtotal'] = $subtotal;
} 
else 
{
    // 否则,将新项目添加到购物车
    $_SESSION['cart'][$itemID] = array('itemID' => $itemID, 'quantity' => $quantity, 'subtotal' => $subtotal);
} 
$total = 0;
// 遍历购物车中的每个项目,计算总金额
if(isset($_SESSION['cart']) && !empty($_SESSION['cart'])){
    foreach($_SESSION['cart'] as $item){
        $total += $item['subtotal'];
    }
    echo "总计:" . $total;
} else {
    echo "<h2>购物车为空</h2>";
}
print_r($_SESSION['cart']);
?>

 错误:HTML算出的总计与PHP输出的不符合,PHP总计输出错误

第一次php总计输出正确,但html刷新后,重量看起来为0,实际上第一次输入的还没消失,仍保留上次输入的量。
如果在第一次输入的框内再次输入,第二次输入值会替换第一次输入值。
如果第二次没有再次输入,框内重量看起来为0,实际上仍是第一次的重量。

应该怎么才能使PHP输出的总计正确?

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值