안녕하세요.
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개 / 댓글 3개
자바스크립트로 구해온 값을 post, get , ajax 사용 하지않고 php변수에 바로 담을 수도 없을 뿐 아니라
무엇보다 php와 자바스크립트가 동일 페이지에 있으면 php가 실행 되고 난 후 자바스크립트가 실행 된다는것을 염두에 두어야 합니다
php 코드가 자바스크립트 뒤에 나온다고 php에 값을 넣을 수 잇는 것이 아닙니다
myxy.php에 자바스크립트 후의 php 쿼리 코드를 넣어서 실행한 후 값을 ajax로 넘겨 받으면 될 것인데요?
답변에 대한 댓글 1개
페이지에 내용이 노출 되는 순서가
-> php
-> js (jquery)
이렇다 고보시면됩니다.
쿼리에 외부 사이트에서 ajax으로 불러오는 값을 활용하려면
php 단에서 cURL 이라는 방법을 이용하여 변수를 불러온 후 쿼리에 활용하며 됩니다.
curl 문서는 여기를 확인 하세요
답변에 대한 댓글 1개
curl로 이용하는방법도 있었군요
한번 참고해서 다시 도전해보겠습니다
배열이나 json 으로 넘겨야 합니다.
myxy.php 파일에서 아래와 같이 넘기고
echo array($lat, $lon);
받는 부분에서 아래와 같이 받으면 됩니다.
data[0];
data[1];
답변에 대한 댓글 1개
배열 또는 json으로 넘겨서 받아야하는군요..
알려주신대로 한번 해보겠습니다
답변을 작성하려면 로그인이 필요합니다.
아직 배우는입장이라서 이해를 맞게했는지 모르겠습니다 ㅠㅠ