从php

时间:2017-11-09 11:02:59

标签: php angularjs json web-services decode

我偶然发现了一个我认为有点奇怪的问题,因为我已经按照其他示例来查看确切的代码,但我仍然没有得到相同的结果。

简短摘要

我正在开发一个购物应用程序,我正在使用购物车的会话。由于我希望有可能从购物车中删除商品,因此我在会话的JSON对象中使用了一些级别。

购物车摘要

  1. 按钮点击

    创建购物车
    $_SESSION['cart']["cartItems"][$product_id]=$cartProduct;
    
    • 其中$cartProductarray()product_idproduct_name项目。
    • 购物车级别:$product_id适用于移除购物车行function()
  2. 然后在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。

  3. $_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}}}
    
  4. 问题

    所以现在我想只选择"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,数量等重复此操作。

    如果问题不明确,请在评论中告诉我,我会对其进行编辑。

    一如既往,提前致谢!

0 个答案:

没有答案