ajax처리값을 변수로 받아서 쿼리문에 담을려고합니다..
본문
안녕하세요.
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
자바스크립트로 구해온 값을 post, get , ajax 사용 하지않고 php변수에 바로 담을 수도 없을 뿐 아니라
무엇보다 php와 자바스크립트가 동일 페이지에 있으면 php가 실행 되고 난 후 자바스크립트가 실행 된다는것을 염두에 두어야 합니다
php 코드가 자바스크립트 뒤에 나온다고 php에 값을 넣을 수 잇는 것이 아닙니다
myxy.php에 자바스크립트 후의 php 쿼리 코드를 넣어서 실행한 후 값을 ajax로 넘겨 받으면 될 것인데요?
배열이나 json 으로 넘겨야 합니다.
myxy.php 파일에서 아래와 같이 넘기고
echo array($lat, $lon);
받는 부분에서 아래와 같이 받으면 됩니다.
data[0];
data[1];
페이지에 내용이 노출 되는 순서가
-> php
-> js (jquery)
이렇다 고보시면됩니다.
쿼리에 외부 사이트에서 ajax으로 불러오는 값을 활용하려면
php 단에서 cURL 이라는 방법을 이용하여 변수를 불러온 후 쿼리에 활용하며 됩니다.
curl 문서는 여기를 확인 하세요
https://www.runoob.com/php/php-ref-curl.html