这是我第一次处理JSON,但我无法做到这一点:
JavaScript:
var obj = new Object();
obj.latitude = sessionStorage.lat;
obj.longitude = sessionStorage.lng;
var jsonString= JSON.stringify(obj);
var post_data = "coords="+jsonString;
$.ajax({
url: "index.php",
type: "POST",
data: post_data,
dataType: "json",
success: function(){
alert("postdone!");
},
error: function(){
alert("posterror!")
}
});
PHP:
if (isset($_POST['data'])) {
$jsondata = json_decode($_POST['data'],true);
echo $jsondata;
}
我总是听到"posterror!"。。。
您已经完成了一些
数据:对象必须是键/值对http://api.jquery.com/jquery.ajax/
JS
var obj = new Object();
obj.latitude = sessionStorage.lat;
obj.longitude = sessionStorage.lng;
var jsonString= JSON.stringify(obj);
//does not work, you had to get rid of the string in before dejsoning it in php
var post_data = /*"coords="+*/jsonString;
$.ajax({
url: "index.php",
type: "POST",
//watch it here
data: {"data": post_data},
//does not work if you do not send json back
dataType: /*"json"*/ "html",
success: function(){
alert("postdone!");
},
error: function(){
alert("posterror!")
}
});
PHP
现在应该工作
if (isset($_POST['data'])) {
$jsondata = json_decode($_POST['data'],true);
//Where should that be good for?
echo $jsondata;
}
您应该使用此代码在php中发送数据
type: "POST",
data: {data:post_data},
http://php.net/manual/en/function.json-decode.php
并在PHP中转换为json,您可以为PHP 解码json
USe This
var obj = new Object();
obj.latitude = sessionStorage.lat;
obj.longitude = sessionStorage.lng;
var post_data = JSON.stringify(obj);
$.ajax({
url: "index.php",
type: "POST",
data: post_data,
dataType: "json",
success: function(){
alert("postdone!");
},
error: function(){
alert("posterror!")
}
});
<?php
// php file
if (isset($_POST['data'])) {
$jsondata = json_decode($_POST['data'],true);
echo $jsondata;
}
?>
代码可以简化一点
var post_data = {
coords: {
latitude: sessionStorage.lat,
longitude: sessionStorage.lng
}
}
$.ajax({
url: "index.php",
data: JSON.stringify({data: post_data}),
contentType: 'application/json',
success: function(){
alert("postdone!");
},
error: function(){
alert("posterror!")
}
});
至于php:
if (isset($_POST['data'])) {
$jsondata = json_decode($_POST['data'], true);
echo $jsondata;
}