为了账号安全,请及时绑定邮箱和手机立即绑定

将相同产品添加到购物车后更新数量

将相同产品添加到购物车后更新数量

PHP
汪汪一只猫 2023-04-28 17:14:08
我不知道如何通过再次添加来更新已经在购物篮中的产品数量。如果数量为 1,添加数量为 3 的相同产品后,应在购物篮中显示 4。我现在所能做的就是用新的数量替换添加的数量,或者在购物篮表中插入一个空元素,不包含任何产品详细信息。<?php// Products are added to the basketif (!isset($_SESSION['basket'])) {  $_SESSION['basket'] = array();}if ($_SERVER['REQUEST_METHOD'] == 'POST') {  if (isset($_POST['id'])) {    $_SESSION['basket'][$_POST['id']] = array(    'product_id'=>($_POST['id']),    'product_photo'=>($_POST['hidden_photo']),    'product_photo_alt'=>($_POST['hidden_photo_alt']),    'product_name'=>($_POST['hidden_name']),    'product_price'=>($_POST['hidden_price']),    'product_quantity'=>($_POST['quantity'])    );  }}// This is the code with which I can only insert an empty element in the basket table with no product details.if ($_SERVER["REQUEST_METHOD"] == "POST") {  if (isset($_POST['id']) && isset($_POST['quantity'])) {    foreach ($_SESSION['basket'][$_POST['id']] as $item) {        if ($_item['product_id'] === $_SESSION['basket']['product_id']) {          $_SESSION['basket']['product_quantity'] += $item['product_quantity'];         }     }      }   }// If I apply below code it just replaces the quantity:if ($_SERVER["REQUEST_METHOD"] == "POST") {  if (isset($_POST['id']) && isset($_POST['quantity'])) {    foreach ($_SESSION['basket'] as $item) {        if ($_item['product_id'] === [$_POST['id']]) {          $item['product_quantity'] += $_POST['quantity'];         }     }      }   }?>
查看完整描述

1 回答

?
茅侃侃

TA贡献1842条经验 获得超21个赞

if ($_SERVER["REQUEST_METHOD"] == "POST") {

  if (isset($_POST['do_it']) && $_POST['do_it'] == 'change') {

    if (isset($_SESSION['basket'])) {

      $is_available = 0;

        foreach ($_SESSION['basket'] as $keys => $values) {

          if ($_SESSION['basket'][$keys]['product_id'] == $_POST['id']) {

            $is_available++;

            $_SESSION['basket'][$keys]['product_quantity'] +=  $_POST['quantity'];

          } 

        } 

    }


    if ($is_available == 0) {

      if (!isset($_SESSION['basket'])) {

        $_SESSION['basket'] = array();

      }


      if ($_SERVER['REQUEST_METHOD'] == 'POST') {

        if (isset($_POST['id'])) {

          $_SESSION['basket'][$_POST['id']] = array(

          'product_id'=>($_POST['id']),

          'product_photo'=>($_POST['hidden_photo']),

          'product_photo_alt'=>($_POST['hidden_photo_alt']),

          'product_name'=>($_POST['hidden_name']),

          'product_price'=>($_POST['hidden_price']),

          'product_quantity'=>($_POST['quantity'])

          );

        }

      }   

    }  

  }   

}

归功于https://www.webslesson.info/2018/04/shopping-cart-by-using-bootstrap-popover-with-ajax-php.html


虽然,我不确定我是否理解$is_available代码中的实际作用以及添加相同产品时它是如何指代增加数量的。


查看完整回答
反对 回复 2023-04-28
  • 1 回答
  • 0 关注
  • 115 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信