Can';t使用AJAX将JSON变量发布到PHP
在第一个文档中,我向localstorage添加了一个充满数字的JSON字符串,如下所示:Can';t使用AJAX将JSON变量发布到PHP,php,ajax,Php,Ajax,在第一个文档中,我向localstorage添加了一个充满数字的JSON字符串,如下所示: $.ajax({ url: "oyvind_liste.php", data: {aktuelle_verdier: aktuelle_verdier}, dataType: "json", success: function(result){ var dataToStore = JSON.stringify(result); localStorage.setItem('
$.ajax({
url: "oyvind_liste.php",
data: {aktuelle_verdier: aktuelle_verdier},
dataType: "json",
success: function(result){
var dataToStore = JSON.stringify(result);
localStorage.setItem('key', dataToStore);
}});
<?php
$user_id = isset($_POST['localData'])?$_POST['localData']:"";
$values = json_decode($user_id);
var_dump($values);
?>
然后在另一个文档中,我试图发布从本地存储检索到的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>
var data=JSON.parse(localStorage.getItem('key'));
var localData=data.join(“,”);
$.ajax({
键入:“post”,
数据:{localData:localData},
url:“”,
数据类型:“json”,
成功:功能(结果){
console.log(结果)
}});
与帖子位于同一页面上的PHP尝试获取如下数据:
$.ajax({
url: "oyvind_liste.php",
data: {aktuelle_verdier: aktuelle_verdier},
dataType: "json",
success: function(result){
var dataToStore = JSON.stringify(result);
localStorage.setItem('key', dataToStore);
}});
<?php
$user_id = isset($_POST['localData'])?$_POST['localData']:"";
$values = json_decode($user_id);
var_dump($values);
?>
当我运行var_dump时,我会得到
Array()
,所以本质上它不会发布任何内容。有人知道出了什么问题吗?在向$.ajax
发送对象参数中的数组时,不需要使用JSON
。只要把数组放在那里,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);
在将javascript代码发送到PHP之前,
data
值是否已在javascript代码中设置?localData
不是JSON,它只是一个逗号分隔的字符串。@Maximus2012编辑了我的文章,请看顶部@Barmar那么你是说我需要在用ajax发送之前对其进行编码?我会这么说。因为PHP代码需要JSON中的值。您可能还想尝试使用var\u dump($\u POST)
查看POST值,甚至使用FireBug插件跟踪请求。这似乎不会产生任何结果,我只得到一个空数组。感谢您的扩展,首先var\u dump($values)
读取array(0){
。和console.log(data)
,因为我使用的是var json\u string=localStorage.getItem('key')
soconsole.log(json_string)
显示这样的数字[“4”、“5”、“6”]
当页面第一次加载时,或者当它调用AJAX时,您会得到这样的数字吗?如果您为AJAX服务器使用的脚本与显示页面的脚本不同,那么可能就不会那么混乱了。