使用$ .ajax在PHP中获取空数组

时间:2017-11-17 11:18:27

标签: javascript php jquery json ajax

我有这个jQuery $ .ajax脚本:

var data = JSON.stringify( selected_products );

$.ajax({ type: "POST", 
    url: "addtocart.php", 
    data: data, 
    dataType: 'application/json'
}); 

我将其发布到一个非常简单的PHP脚本中:

$selected_products = json_decode($_POST['data'], true);
print_r($selected_products);

这是我发送的一个例子;这是Chrome DevTools中的传出数据:

data:[{"id":"RECOLOURBALM","option":"Black","quantity":1},{"id":"TOWELS","quantity":1}]

然而,这是响应的控制台读数:

Array
(
)

我认为请求正在成功并且数据正在传递,但响应都是空的。

我做错了什么?

2 个答案:

答案 0 :(得分:3)

$selected_products = json_decode($_POST['data'], true);
echo $selected_products[0]['id'];
echo '<br>';
echo $_POST;
echo '<br>';
var_dump($_POST);

将数据添加到您的帖子

由于那里给出的字符串化,你现在变为空。请改变这样的代码。它肯定会有效。

var data=[{"id":"RECOLOURBALM","option":"Bordeaux","quantity":1},{"id":"TOWELS","quantity‌​":1}];
//data = JSON.stringify(data);
$.ajax({ 
    type: "POST", 
    url: "addtocart.php", 
    data: {'data':data}, 
    success:function(returndata){
        console.log(returndata);
    }
});

删除stringify。

答案 1 :(得分:1)

如果OnRequestPermissionsResultCallback设置为@Override public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) { switch (requestCode) { case 0: // Re-attempt file write } } ,您必须按如下方式接收数据。

String where = MediaStore.Images.Media.MIME_TYPE + "='image/jpeg'" + " OR " + MediaStore.Images.Media.MIME_TYPE + "='image/png'"+ " OR " + MediaStore.Images.Media.MIME_TYPE + "='image/jpg'";

Content-Type将收到来自请求的数据,该数据包含application/json$data = json_decode(file_get_contents('php://input'), true);(表单数据)