PHP和jQuery“ $ .post”造成麻烦。我将一些变量发布到PHP文件中。
jQuery是:
navigator.geolocation.getCurrentPosition(saveGeoLocation);
function saveGeoLocation(position) {
var latitude = position.coords.latitude;
var longitude = position.coords.longitude;
$.post("__g.php", {
latitude: latitude,
longitude: longitude
}).done(function(data) {
console.log("Data Loaded: " + data);
});
}
PHP是:
$latitude = $_POST['latitude'];
$longitude = $_POST['longitude'];
echo "Position output: " . $latitude . $longitude;
控制台通过jQuery发送的所有信息正确显示了回显。但是,在页面本身上,PHP-echo只是在引号内显示内容,而不是在变量内容内显示。
PHP位于单个文件中,但可以通过include()导入到更大的文件中。
(这是一个简化的示例,可能有错字。)
感谢您的智慧!
----------编辑--------:
我的问题可能是基于菜鸟的错误。是否可以包含一个php文件,并同时向其发送数据,以便将其输出到您想要的位置?喜欢:
<somehtml>
<somejquery> *--> is retrieving Geolocation-coordinates and posting long/lat to "__g.php"*
<?php
<somephp>
include("__g.php"); *--> is echoing the full API-url containing the long/lat values from the jQuery-post*
<someforeach> *--> for the received API-json*
?>
答案 0 :(得分:0)
更改以下内容:
$.post("__g.php", {
latitude: latitude,
longitude: longitude
}).done(function(data) {
console.log("Data Loaded: " + data);
});
到
$.ajax({
url: "__g.php",
type: "POST",
dataType "text",
data: {
latitude: latitude,
longitude: longitude
},
success: function(data) {
console.log("Data Loaded: " + data);
},
error: function(data) {
console.log("Error: an error occurred somewhere");
}
});
从以下位置更改您的php代码:
$latitude = $_POST['latitude'];
$longitude = $_POST['longitude'];
echo "Position output: " . $latitude . $longitude;
到
if (isset($_REQUEST['latitude']) && isset($_REQUEST['longitude'])) {
$latitude = $_REQUEST['latitude'];
$longitude = $_REQUEST['longitude'];
print "Position output: " . $latitude . $longitude;
} else {
header('HTTP/1.1 500 Internal Server');
header('Content-Type: application/json; charset=UTF-8');
}