在第一篇文档中,我将一个填充了数字的JSON字符串添加到localstorage中,如下所示:
$.ajax({
url: "oyvind_liste.php",
data: {aktuelle_verdier: aktuelle_verdier},
dataType: "json",
success: function(result){
var dataToStore = JSON.stringify(result);
localStorage.setItem('key', dataToStore);
}});
然后在另一个文档中,我试图发布从本地存储中检索的JSON字符串,如下所示:
<script>
var data = JSON.parse(localStorage.getItem('key'));
var localData = data.join(", ");
$.ajax({
type: 'post',
data: {localData: localData},
url: '',
dataType: "json",
success: function(result){
console.log(result)
}});
</script>
与帖子在同一页面上的PHP尝试获取如下数据:
<?php
$user_id = isset($_POST['localData'])?$_POST['localData']:"";
$values = json_decode($user_id);
var_dump($values);
?>
当我运行var_dump时,我得到Array()
,所以实质上它并没有发布任何内容。有谁知道什么出错了?
答案 0 :(得分:0)
在向JSON
的对象参数中发送数组时,您不需要使用$.ajax
。只需将数组放在那里,jQuery将对其进行URL编码。
var data = JSON.parse(localStorage.getItem('key'));
$.ajax({
type: "post",
data: { localData: data },
...
});
然后在PHP中你可以这样做:
$values = isset($_POST['localData']) ? $_POST['localData'] : array();
var_dump($values);
你也可以这样发送JSON:
var json_string = localStorage.getItem('key');
$.ajax({
type: "post",
data: { localData: json_string},
...
});
然后在PHP中执行:
$values = json_decode(isset($_POST['localData']) ? $_POST['localData'] : '[]');
var_dump($values);