检索从ajax post请求发送的数据

时间:2017-01-08 15:38:57

标签: javascript php jquery json ajax

我使用ajax post请求发送JSON格式的数据,我想从发送数据的文件中检索数据。 如果您不知道JSON变量中有多少个对象而您不知道密钥,那么如何使用$ _POST [" name"]来检索数据; ?

我目前正在处理的网站就像一个简单的在线商店,客户可以多次选择任何商品。我现在将日期存储在localStorage中。 JSON数据将类似于{" itemName":" item'"," number":"他们想要的商品数量& #34;},并且不能指望客户购买多少不同的商品。当按下placeOrder按钮时,我想以JSON格式发送购买信息,我想在php文件中解析它。

$(document).ready(function(){
    $(".placeOrder").click(function(){
        var purchaseInfo = {}; //make JSON formatted variable
        var key, item;
        //move all localStorage data (which contains the item and the number)
        //to purchaseInfo 
        for(var i=0; i<localStorage.length; i++){
            key = localStorage.key(i);
            item = localStorage.getItem(key);
            purchaseInfo[key] = item;
        }


        //ADDED THIS CODE
        purchaseInfo = {"productPurchased":purchaseInfo};

        //send the data to place_order.php 
        $.ajax({
            url: "place_order.php",
            data: purchaseInfo,
            method: "POST",
            success: function(data){
                alert("success");
                //change the page using location.href
                window.location.href = "place_order.php";
            },
            error: function(data){
                alert("failed");
            }
        });
    });
});

将buyInfo varibale发送到place_order.php后,我不知道如何解析变量的内容..有谁能帮我理解这个想法?非常感谢你提前。

编辑: ajax函数以及我如何(试图)将localStorage的数据以JSON格式移动到变量 purchaseInfo ,如上所示。

在place_order.php(我正在尝试检索JSON数据并计算更多,以便我可以计算总价格)

    <?php
        //this line below prints NULL           
        var_dump($_POST["productPurchased"]);

        //and this code below prints "I am empty"
        if("" == trim($_POST["productPurchased"])){
            echo "I am empty";
        }else{
            echo "I am filled";
        }

        //$purchaseInfo = $_POST['productPurchased'];
        //the below line of code prints "array(0) { } "
        var_dump($_POST);            
    ?>

1 个答案:

答案 0 :(得分:2)

在JavaScript中:

purchaseInfo = {'purchaseInfo': purchaseInfo};
$.ajax({ ...

在PHP中:

$purchaseInfo = $_POST['purchaseInfo'];
// Do smth with data in $purchaseInfo

现在PHP $purchaseInfo是一个关联数组,包含来自localStorage的项目。