테스트 사이트 - 개발 중인 베타 버전입니다

현재 위치의 위도와 경도를 php로 받기 채택완료

열공중 4년 전 조회 3,156

geolocation 통해 받은 위도 경도의 값을 php변수로 받을 수 있을까요?

 

$sql에 적용하기 위해서 $lat값으로 받으려고합니다. radians($lng))+sin(radians($lat))

 

클릭같은 어떤 액션없이 사이트 접속하면 바로 사용자의 위도 경도값을 가져오려고합니다.

 

아시는분 도움 좀 부탁드립니다.

<script>

$(document).ready(function(){    

    navigator.geolocation.getCurrentPosition(function(pos) {

        var latitude = pos.coords.latitude;

        var longitude = pos.coords.longitude;

        $.ajax({

            type:'POST',

            url:'GetLocation.php',

            data:'latitude='+latitude+'&longitude='+longitude

        });

    });

});    

</script>

 

GetLocation.php

<?php 

if(!empty($_POST['latitude']) && !empty($_POST['longitude'])){ 

$lat = $_POST['latitude'];

$lng = $_POST['longitude'];

//echo json_encode(array('latitude'=>$latitude,'longitude'=>$longitude));

//echo json_encode(array($latitude, $longitude));

}

?>

댓글을 작성하려면 로그인이 필요합니다.

답변 1개

4년 전

잘하신것 같은데 무엇이 문제죠?

에러가 발생한다면 에러내용을 알려 주시죠.

로그인 후 평가할 수 있습니다

답변에 대한 댓글 6개

열공중
4년 전
@평정심 님 php 변수로 $lat이렇게 받아야 하는데요.
어떻게 받는지 몰라서요 ㅠㅠ
평정심
4년 전
GetLocation.php 아 퍼알에서 $lat , $lng 잘 표현되고 있을텐데요.
열공중
4년 전
@평정심 님 당연 GetLocation.php 여기선 잘 나옵니다.
ajax로 보낸 페이지에서 받아야해서 문제입니다.
즉 현재 페이지에서 접속자 위도 경도를 새로고침없이 받으려고 하는겁니다.
평정심
4년 전
제가 질문을 좀 잘 이해를 못하겠는데요.
다른 페이지에서 받으시더래도 똑 같은 방법으로 받으시면 될텐데요...
열공중
4년 전
@평정심 님 리스트 접속시 ajax로 GetLocation.php 보내면 GetLocation.php 여기에서는 $lat 잘 찍힙니다.
하지만 보내는 페이지 리스트에선 echo $lat 나오지않습니다.

다만 보내는 페이지에서 아래처럼하면 #location에 담을 순 있더군요.
제가 원하는건 보내는 페이지에서 php변수로 받아서
보내는 페이지 리스트에서 $sql에 적용하기 위해서 입니다.
[code]
<script>
function showLocation(position) {
var latitude = position.coords.latitude;
var longitude = position.coords.longitude;
$.ajax({
type:'POST',
url:'GetLocation.php',
data:'latitude='+latitude+'&longitude='+longitude,
success:function(msg){
if(msg){
$("#location").html(msg);
}else{
$("#location").html('Not Available');
}
}
});
}
</script>
[/code]
<span id="location"></span>
평정심
4년 전
그렇다면 ajax의 url에 예를들어 test.php라면 이걸 넣으시거나
url: "<?php echo $_SERVER['PHP_SELF'] ?>" 이걸 넣어 보세요.

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인