2011-12-01 5 views
1

여기서 무엇을 하려는지는 JavaScript 변수를 PHP 함수로 보내는 것입니다. 내가 개발중인 것은 특정 경도/위도에 도달하면 체크인 할 수있는 jQuery Mobile App입니다. 하지만 위도/위도를 PHP 함수에 보내는 데 문제가 있습니다. 내가 데이터베이스에 저장 한 경도/위도와 비교를 할 것이므로 Im을 PHP 함수로 보냅니다.JavaScript 변수를 PHP로 보내기

여기 내 코드가 있습니다.

 function testResults() { 

      if(navigator.geolocation) { 
       //Get the current position 
       navigator.geolocation.getCurrentPosition(function(position) { 
        var latitude = position.coords.latitude; 
        var longitude = position.coords.longitude; 
        document.write("lat", latitude); 
        document.write('<br /><br />'); 
        document.write("long", longitude); 
       }); 
      } else { 
       alert("Sorry... your browser does not support the HTML5 GeoLocation API"); 
      } 

     //////////// Here I tried with jQuery/Ajax. I know that it's wrong. 
     //////////// Im putting it here so that it maybe clarifies what Im 
     //////////// trying to do. 

      $.post("checkLocation.php", { 
       lat : latitude, 
       longi : longitude 
      }, function(data) { 
       alert("Data Loaded: " + data); 
      }); 

     //////////////////////////////////////////////////////////////////// 

     } 

     testResults(); 

어떻게이 문제에 접근합니까? JSON을 사용해 보았지만 작동시키지 못했습니다. 어떤 도움을 주시면 감사하겠습니다. 당신이

당신은 콜백 내에서 그것을 할 필요가 위치 정보 응답을 얻기 전에

+0

는 PHP 코드 – Distdev

+0

응용 프로그램의 PHP 측을 게시하시기 바랍니다 (PARAMS의 꺼내는데 파트)를 보여> 을 그리고 wellformed JSON합니다 –

+0

를 {경도 "위도": 위도, "LNG를"} @frank_neff : JSON이 아닌 객체 리터럴입니다. 따옴표가 필요 없습니다. AJAX 라이브러리는 소스 코드에 따옴표가 있는지 여부와 관계없이 객체를 올바른 형식의 JSON으로 직렬화합니다. – RoToRa

답변

2

당신은 요청을 전송하고 있습니다.

+0

당신이 의미하는 바를 이해한다면 확실하지 않습니까? – Oscar

0

당신의 핸들러는 다음과 같이한다 AJAX

http://api.jquery.com/jQuery.ajax/

를 사용해보십시오 : 당신이 지역 바르가 여기에 위도와 경도

$.ajax({ 
    type: "POST", 
    url: "checklocation.php", 
    data: "lat="+latitude+"&longi="+longitude 
}).done(function(msg) { 
    alert("Data Saved: " + msg); 
}); 
+0

고맙습니다. 그것은 매우 도움이 보입니다. 나는 그것을 바로 보게 될 것이다. – Oscar

+1

데이터를 보낼 자바 스크립트 문자열을 작성하는 대신 본격적인 JSON 객체를 작성할 수도 있습니다. 'data : {lat : 위도, longi : 경도} ' – Mattygabe

0
navigator.geolocation.getCurrentPosition(function(position) { 
       var latitude = position.coords.latitude; 
       var longitude = position.coords.longitude; 
       document.write("lat", latitude); 
       document.write('<br /><br />'); 
       document.write("long", longitude); 
      }); 

. 이 기능의 외부를 사용할 경우 글로벌 바르를 사용할 수 있습니다

var latitude; 
var longitude; 
//... 
navigator.geolocation.getCurrentPosition(function(position) { 
       latitude = position.coords.latitude; 
       vlongitude = position.coords.longitude; 
       document.write("lat", latitude); 
       document.write('<br /><br />'); 
       document.write("long", longitude); 
      }); 

//usage(transfer) of vars 
+0

어떤 이유로 든 작동하지 않습니다. 이상 : S – Oscar

0

시도를 콜백에서 AJAX-요청 사용 (개념 증명을 작동하는 경우, 슈어되지 않음) :

function testResults() 
{ 
    if (navigator.geolocation) 
    { 
     //Get the current position 
     navigator.geolocation.getCurrentPosition(function (position) 
     { 
      var latitude = position.coords.latitude; 
      var longitude = position.coords.longitude; 

      // do callback     
      $.ajax(
      { 
       type: "POST", 
       url: "checklocation.php", 
       data: "lat=" + latitude + "&lon=" + longitude 
      }).done(function (msg) 
      { 
       alert("Data Saved: " + msg); 
      }); 

     }); 
    } 
    else 
    { 
     alert("Sorry... your browser does not support the HTML5 GeoLocation API"); 
    } 
} 

testResults(); 

건배. . 프랭크

+0

매개 변수 (msg)의 용도는 무엇입니까? – Oscar

+0

jqXHR.done()이 1.8에서 더 이상 사용되지 않는 것을 보았습니다. 대신 'success : function() {}'및 'error :() {}'를 사용하십시오. http://api.jquery.com/jQuery.ajax/ –