使用JSON会话和foreach()语句

时间:2017-11-28 15:31:15

标签: php json xml session prestashop

我在创建购物应用程序时偶然发现了一些问题。简而言之:

  1. 我使用php $_SESSION['cart']注册购物车内的所有商品
  2. 产品已注册并通过以下代码添加到购物车:

    else {// It's new: Add it to the array $_SESSION['cart']['cartItems'][] = $cartProduct; $_SESSION['cart']['totalItems']++; }

  3. 对于该功能,包含2个或更多产品的购物车如下所示:

  4. 
    
    {"cartItems":[{
        "id":"3",
        "name":"Bedrukte  Jurk",
        "price":25.99,
        "size":"L",
        "quantity":"12",
        "total_product_price":311.88
    },
    {
        "id":"11",
        "name":"Product voorraad id",
        "price":144,
       "size":"M",
       "quantity":"23",
       "total_product_price":3312
    }
    ],
    "totalPrice":3623.88,
    "totalItems":2
    }
    
    
    

    所以现在我对$_SESSION['cart'];

    有两个问题
    1. 我如何删除特定产品?我在考虑使用产品ID。而且除非unset($_SESSION['cart']['cartItems'] ... id部分我仍然无法解决,否则它一直在为我工作。那么我怎么能告诉php删除带有请求ID的行。

    2. 第二个问题对我来说有点混乱,因为这与编写" cart"到" payOrder"点击。

    3. 所以我一直在努力解决这个问题,并且我尝试使用foreach()语句来获取每一行。但遗憾的是,只有第一个产品写在数据库中。处理此foreach()的功能如下所示:

      $cart_encode = json_encode($_SESSION['cart']['cartItems']);
      $cartDecode = json_decode($cart_encode);
      $date = date("Y-m-d h:i:s");
      
      // Create the cart Using XML
      $opt = $webService->get(array(
           'resource' => 'carts',
      ));
      
      // Define the $resource
      $resource = $opt->children()->children();
      
      // Adding the product items
              foreach ($cartDecode as $key => $cartItem) {
                      $resource->associations->cart_rows->cart_row->id_product = $cartItem->{"id"};
                      $resource->associations->cart_rows->cart_row->id_product_attribute = 1;
                      $resource->associations->cart_rows->cart_row->id_address_delivery = 1;
                      $resource->associations->cart_rows->cart_row->quantity = $cartItem->{"quantity"};
                  }
      

      评论后更新

      因为@Randall已经提到最好使用product_id作为新的数组索引层来删除购物车中的行,在这种情况下是特定产品。

      所以我已经将我的代码编辑到一个较旧的状态,这是真的,问题一解决了。

      无论如何新的JSON结构是:

      
      
      {"cartItems": {
          "5": { 
              "id":"5",
              "name":"Bedrukte Zomerjurk",
              "price":30.5,
              "size":"L",
              "quantity":"34",
              "total_product_price":1037
              },
          "4": { 
              "id":"4",
              "name":"Bedrukte Avond Jurk",
              "price":50.99,
              "size":"L",
              "quantity":"3",
              "total_product_price":152.97
           }
       },
      "totalPrice":1189.97,
      "totalItems":2
      }
      
      
      

      仍然问题2遗憾地对数据库输入没有答案。我希望有些人可以帮助我。

      PS:@Randall感谢"它没有任何不同的提示,它解决了2中的问题1!"。

      我希望我的问题很明确,如果不是,请告诉我。

      一如既往 提前谢谢!

0 个答案:

没有答案