我偶然发现了一个我认为有点奇怪的问题,因为我已经按照其他示例来查看确切的代码,但我仍然没有得到相同的结果。
简短摘要
我正在开发一个购物应用程序,我正在使用购物车的会话。由于我希望有可能从购物车中删除商品,因此我在会话的JSON
对象中使用了一些级别。
购物车摘要
按钮点击
创建购物车$_SESSION['cart']["cartItems"][$product_id]=$cartProduct;
$cartProduct
是array()
,product_id
等product_name
项目。$product_id
适用于移除购物车行function()
。然后在angularJS应用程序中显示购物车。我将传递完整视图,只显示getCart部分和JSON响应。
$json = json_encode($_SESSION['cart']['cartItems']);
echo($json);
JSON echo是:
{"3":{"id":"3","name":"Bedrukte Jurk","price":25.99,"size":"M","quantity":"3","total_product_price":77.97},"2":{"id":"2","name":"Blouse","price":26.99,"size":"S","quantity":"3","total_product_price":80.97}}
通过删除['cartItems']
值来删除JSON。
$_SESSION['cart']
的原始JSON对象是:
{"cartItems":{"3":{"id":"3","name":"Bedrukte Jurk","price":25.99,"size":"M","quantity":"3","total_product_price":77.97},"2":{"id":"2","name":"Blouse","price":26.99,"size":"S","quantity":"3","total_product_price":80.97}}}
{"cartItems":{"3":{"id":"3","name":"Bedrukte Jurk","price":25.99,"size":"M","quantity":"3","total_product_price":77.97},"2":{"id":"2","name":"Blouse","price":26.99,"size":"S","quantity":"3","total_product_price":80.97}}}
问题
所以现在我想只选择"name"
,"id"
和其他值,因为我必须将它们写入数据库。它会是这样的:
$json_test = json_decode($_SESSION['cart']['cartItems']['name']);
echo $json_test;
$product_name = $json_decode_name;
所以此刻我的问题真的开始了。我有一个问题和一个真正的问题,我应该如何实现这一点(想想使用foreach()
首先我的问题是我不能,或者我无法从json
购物车session
中选择具体的值。我尝试了PHP docs中的一些东西并做了一个小比较:
$json1 = '{"foo-bar": "123", "foo-bar2": "456"}';
echo($json1);
echo "<br>";
$obj = json_decode($json1);
print $obj->{'foo-bar2'}; // 456
echo "<br>";
$json_decode = json_decode($_SESSION['cart']['cartItems']['3']);
print $json_decode->{'name'};
echo "<br>";
var_dump(json_decode($_SESSION['cart']['cartItems']['3'], true));
echo "<br>";
$json = json_encode($_SESSION['cart']);
echo($json);
$json1
正在运作,但我无法让自己的版本正常工作。
一些额外提示?
然后第二件事是将其推送到数据库。我在考虑:当从JSON
字符串中获取名称/名称时,我将使用foreach()
语句。在以下领域的东西:
$cart_product_name = $json_decoded_name
foreach ($cart_product_name as $product_name) {
insert_Query
}
并为id,数量等重复此操作。
如果问题不明确,请在评论中告诉我,我会对其进行编辑。
一如既往,提前致谢!