2009-05-07 3 views
0

마커를 배치하면 위도와 경도가 입력 된 php 함수 (다른 파일)를 호출하고 결과를 페이지의 div에 출력하고 싶습니다. 따라서 마커가 움직일 때마다 div가 함수의 최신 결과로 업데이트됩니다.Google지도 아이콘을 이동했을 때 PHP 함수 호출 요청

저는 이것을 수행하기 위해 javascript가 필요하다는 것을 알고 있습니다. 그러나 저는 그것에 익숙하지 않고 도움이 될 것입니다.

답변

3

다음은 jQuery를 사용하여 맵에 마커가 추가되고 드래그 될 때마다 HTTP GET을 트리거하는 예제입니다. 요청의 결과는 id가 "outputdiv"인 div에 저장됩니다.

// create and init map (make sure to have a div element with id "map") 
var map = new GMap2(document.getElementById("map")); 
map.setCenter(new GLatLng(37.4419, -122.1419), 13); 

// this is the marker you want to track 
var marker = new GMarker(new GLatLng(37.4419, -122.1419)); 
map.addOverlay(marker); 

// create function to be executed on add/end of drag 
var changeCallback = function(latlng) { 
    // do HTTP GET to execute PHP function in file, with coordinate 
    // as parameter and put result in div with id "outputdiv" 
    $("#outputdiv").load("test.php?latlng=" + latlng.toUrlValue()); 
}; 

// add listener triggered whenever drag of marker has ended 
GEvent.addListener(marker, "dragend", changeCallback); 

// explicitly call when added 
changeCallback(marker.getLatLng()); 

업데이트는 의견을 대답 : 콜백 함수의 위도와 경도 매개 변수는 개별 값을 검색 할 위도()와 LNG()를 사용 할 수있다 GLatLng 개체입니다. 자세한 내용은 Google Maps API reference을 참조하십시오.

+0

고맙습니다. 집으로 돌아 가면 확실히 시도해 보겠습니다. 정말 도움과 노력에 감사드립니다. –

+0

이것은 매우 간단하지만 위도와 경도 좌표는 어떻게 분리합니까? 결과적으로 test.php에 대한 호출을 다음과 같이 변경해야한다고 가정합니다. load ("test.php? lat ="+ lat.toUrlValue() + "& lng ="+ lng.toUrlValue()); 그 소리가 맞나요? –

0

비동기 JavaScript 및 XML (AJAX)을 사용해야합니다. 이 주제에 대한 유용한 자습서는 http://www.w3schools.com/Ajax/Default.Asp에서 찾을 수 있습니다.

실제로 이러한 예제를 살펴본 후에 설명한대로 할 수 있습니다.

  1. 먼저 당신이 그런 식으로 자바 스크립트의 XMLHttpRequest 객체를 생성해야합니다 : http://www.w3schools.com/Ajax/ajax_browsers.asp
  2. 그런 다음에 대한 how to define the onreadystatechange() method 읽기 - 서버 (통화 할 기능)가 응답 할 때 발생 지정할 곳입니다.
  3. 그런 다음 GET 또는 POST 요청과 함께 PHP 파일을 쿼리하여 호출 할 수있는 함수에 요청을 보냅니다. xmlhttp.open("GET","myfunction.php",true); xmlhttp.send(null);

나머지 튜토리얼을 따라하면됩니다. D

관련 문제