Skip to content
Advertisement

How can we pass a variable from script inside php and set it to new a variable?(Closed)

How can we pass a variable from script inside php and set it to new a variable? I want to calculate the user location and the destination location by their coordinates but first I want to get the user coordinates which is already given in the script.

<?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>

the route

Route::get('getlocation', 'HomeController@getAllLocations');

ajax response enter image description here

enter image description here

Advertisement

Answer

It will be better for you to separate the View and the API routes called via AJAX. After separating the functions, you need to access the POST data using $request->input(‘lat’) and then perform the operations there and return a JSON response.

Also, this code has other issues such as, $userCoordinates is not defined…

User contributions licensed under: CC BY-SA
7 People found this is helpful
Advertisement