我使用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);
?>
答案 0 :(得分:2)
在JavaScript中:
purchaseInfo = {'purchaseInfo': purchaseInfo};
$.ajax({ ...
在PHP中:
$purchaseInfo = $_POST['purchaseInfo'];
// Do smth with data in $purchaseInfo
现在PHP $purchaseInfo
是一个关联数组,包含来自localStorage的项目。