【发布时间】:2021-02-12 05:16:52
【问题描述】:
我们如何从 php 中的脚本传递一个变量并将其设置为新的变量?我想通过坐标计算用户位置和目标位置,但首先我想获取脚本中已经给出的用户坐标。
<?php
function distance($lat1, $lon1, $lat2, $lon2, $unit) {
if (($lat1 == $lat2) && ($lon1 == $lon2)) {
return 0;
}
else {
$theta = $lon1 - $lon2;
$dist = sin(deg2rad($lat1)) * sin(deg2rad($lat2)) + cos(deg2rad($lat1)) * cos(deg2rad($lat2)) * cos(deg2rad($theta));
$dist = acos($dist);
$dist = rad2deg($dist);
$miles = $dist * 60 * 1.1515;
$unit = strtoupper($unit);
if ($unit == "K") {
return ($miles * 1.609344);
} else if ($unit == "N") {
return ($miles * 0.8684);
} else {
return $miles;
}
}
}
$mResult = distance($lat, $long, 29.46786, -98.53506, "M") . " Miles<br>";
$kmResult = distance($lat, $long, 29.46786, -98.53506, "K") . " Kilometers<br>";
$nmResult = distance($lat, $long, 29.46786, -98.53506, "N") . " Nautical Miles<br>";
echo $kmResult;
?>
<script>
window.onload = function getLocation() {
if (navigator.geolocation) {
navigator.geolocation.getCurrentPosition(bindPosition);
} else {
y.innerHTML = "Geolocation is not supported by this browser.";
}
}
function bindPosition(position) {
$.ajax({
url: "/getlocation",
type: "GET",
dataType: "json",
data: {
lat: position.coords.latitude,
long: position.coords.longitude
},
success: function(response){
if(data == "success")
alert(response);
},
error: function(response){
alert('Error'+response);
console.log('Error'+response);
}
})
}
</script>
路线
Route::get('getlocation', 'HomeController@getAllLocations');
【问题讨论】:
-
提交表单或使用ajax。
-
您好,我更新了上面的代码。需要你的帮助。
-
@FelippeDuarte 我还添加了 ajax 来推送路由中的数据,但我无法收到路由从脚本接收数据的警报消息
-
路由是否由与您上面提到的相同的 php 代码处理?或者更确切地说,“/getlocation”是如何处理的?
-
是的,它是到 php 页面的路由
标签: javascript php ajax laravel-5