0

マーカーが配置されたら、緯度と経度を入力としてphp関数(別のファイル内)を呼び出し、結果をページのdivに出力します。したがって、マーカーが移動されるたびに、関数の最新の結果でdivが更新されます。

これを行うにはJavaScriptが必要になることはわかっていますが、あまり詳しくないので、助けていただければ幸いです。

4

2 に答える 2

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());

コメントへの回答の更新: コールバック関数の latlng パラメーターは、個々の値を取得するために lat() および lng() を使用できるGLatLngオブジェクトです。詳細については、 Google Maps API リファレンスを参照してください。

于 2009-05-07T21:00:10.517 に答える
0

非同期の JavaScript と XML (AJAX として知られています) を使用する必要があります。この件に関する優れたチュートリアルは、http ://www.w3schools.com/Ajax/Default.Asp にあります。

実際、これらの例を見れば、説明したことができるようになるでしょう。

  1. 最初に、次のように JavaScript で XMLHttpRequest オブジェクトを作成する必要があります: http://www.w3schools.com/Ajax/ajax_browsers.asp
  2. 次に、 onreadystatechange()メソッドの定義方法について読んでください。ここで、サーバー (呼び出したい関数) が応答したときに何が起こるかを指定します。
  3. 次に、次のような GET または POST リクエストを使用して php ファイルをクエリすることで呼び出すことができる関数にリクエストを送信します。xmlhttp.send(null) ;

残りはチュートリアルに従うだけで問題ありません。従うにはチュートリアルが本当に必要です-javascriptはコピー/貼り付けと編集が非常に簡単です:D

于 2009-05-07T19:08:07.633 に答える