我在创建购物应用程序时偶然发现了一些问题。简而言之:
php
$_SESSION['cart']
注册购物车内的所有商品产品已注册并通过以下代码添加到购物车:
else {// It's new: Add it to the array
$_SESSION['cart']['cartItems'][] = $cartProduct;
$_SESSION['cart']['totalItems']++;
}
对于该功能,包含2个或更多产品的购物车如下所示:
{"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'];
我如何删除特定产品?我在考虑使用产品ID。而且除非unset($_SESSION['cart']['cartItems'] ... id
部分我仍然无法解决,否则它一直在为我工作。那么我怎么能告诉php
删除带有请求ID的行。
第二个问题对我来说有点混乱,因为这与编写" cart"到" payOrder"点击。
所以我一直在努力解决这个问题,并且我尝试使用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!"。
我希望我的问题很明确,如果不是,请告诉我。
一如既往 提前谢谢!