2026, 새로운 도약을 시작합니다.

ajax처리값을 변수로 받아서 쿼리문에 담을려고합니다.. 채택완료

4년 전 조회 3,698

안녕하세요.
 

ajax로 값을 받았는데 이걸 어떻게 해야 쿼리문에 사용할 변수로 처리할수있을까요?


test.php

<?php
$lat = ""; //ajax값을 여기 변수로 담아야하는데 안되네 ㅠㅠ

$lon = ""; //ajax값을 여기 변수로 담아야하는데 안되네 ㅠㅠ
?>

<script>
$(document).ready(function(){    
    navigator.geolocation.getCurrentPosition(function(pos) {
        val lat = pos.coords.latitude;
        val lon= pos.coords.longitude;

        //alert("현재 위치는 : " + position.coords.latitude + ", "+ position.coords.longitude);
        $.ajax({
            type:'POST',
            url:'myxy.php',
            data:'lat='+lat+'&lon='+lon,

            success: function(data) {
                console.log(data);
              // something to do...
            }, error: function(xhr, status, error) {
              console.log(xhr, status, error); 
            }
        });
    });
});    
</script>

<?php

$row = sql_fetch(" SELECT *, (6371*acos(cos(radians($lat))*cos(radians(wr_1))*cos(radians(wr_2) - radians($lon))+sin(radians($lat))*sin(radians(wr_1)))) AS distance FROM g5_write_test HAVING distance <= 10 ORDER BY distance LIMIT 0,40 ");

?>


myxy.php 

<?php 

if(!empty($_POST['lat']) && !empty($_POST['lon'])){    
    $lat = $_POST['lat'];
    $lon= $_POST['lon'];

}

echo $lat;
echo $lon; 

?>

조그만 조언좀 부탁드리겠습니다..

감사합니다!.

답변 3개

채택된 답변
+20 포인트

자바스크립트로 구해온 값을 post, get , ajax 사용 하지않고 php변수에 바로 담을 수도 없을 뿐 아니라

무엇보다 php와 자바스크립트가 동일 페이지에 있으면 php가 실행 되고 난 후 자바스크립트가 실행 된다는것을 염두에 두어야 합니다

php 코드가 자바스크립트 뒤에 나온다고 php에 값을 넣을 수 잇는 것이 아닙니다

myxy.php에 자바스크립트 후의 php 쿼리 코드를 넣어서 실행한 후 값을 ajax로 넘겨 받으면 될 것인데요?

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

답변에 대한 댓글 1개

균이님 말씀은 myxy.php여기서 php 쿼리문을 넣어서 실행하고 다시 ajax로 받으라는 말씀이신거죠?

아직 배우는입장이라서 이해를 맞게했는지 모르겠습니다 ㅠㅠ

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

페이지에 내용이 노출 되는 순서가 

-> php 

-> js (jquery)

이렇다 고보시면됩니다. 

쿼리에 외부 사이트에서 ajax으로 불러오는 값을 활용하려면 

php 단에서 cURL 이라는 방법을 이용하여 변수를 불러온 후 쿼리에 활용하며 됩니다.

curl 문서는 여기를 확인 하세요 

https://www.runoob.com/php/php-ref-curl.html

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

답변에 대한 댓글 1개

뚜찌빠지님 감사합니다
curl로 이용하는방법도 있었군요
한번 참고해서 다시 도전해보겠습니다

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

배열이나  json 으로 넘겨야 합니다.

myxy.php 파일에서 아래와 같이 넘기고

echo array($lat, $lon);

받는 부분에서 아래와 같이 받으면 됩니다.

data[0];

data[1];

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

답변에 대한 댓글 1개

eyekiss님 감사합니다
배열 또는 json으로 넘겨서 받아야하는군요..
알려주신대로 한번 해보겠습니다

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

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

로그인
🐛 버그신고