Инициировать запрос функции php при перемещении маркера карт Google
Когда маркер размещен, я хочу вызвать функцию php (в другом файле) с широтой и долготой в качестве входных данных и вывести результат в виде div на странице. Таким образом, всякий раз, когда маркер перемещается, он обновляет div с последним результатом функции.
Я знаю, что мне понадобится JavaScript, чтобы сделать это, но я не очень знаком с этим, и любая помощь будет оценена.
2 ответа
Вот пример использования jQuery для запуска HTTP GET при добавлении маркера на карту и при каждом его перетаскивании. Результат запроса помещается в div с идентификатором "outputdiv".
// 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 функции обратного вызова - это объект GLatLng, где вы можете использовать lat() и lng() для получения отдельных значений. Подробнее смотрите в справочнике API Карт Google.
Вам нужно использовать асинхронный JavaScript и XML (известный как AJAX). Хороший учебник по этому вопросу можно найти здесь: http://www.w3schools.com/Ajax/Default.Asp.
Фактически, вы, вероятно, сможете делать то, что описали, после того, как пройдете эти примеры.
- Сначала вам нужно создать объект XMLHttpRequest в JavaScript следующим образом: http://www.w3schools.com/Ajax/ajax_browsers.asp
- Затем прочитайте о том, как определить метод onreadystatechange() - здесь вы указываете, что происходит, когда сервер (функция, которую вы хотите вызвать) отвечает.
- Затем отправьте запрос в функцию, которую вы сможете вызвать, запросив php-файл с помощью запроса GET или POST, например: xmlhttp.open ("GET", "myfunction.php", true); xmlhttp.send (null);
В остальном, просто следуйте инструкциям, и все будет хорошо. Вам действительно нужно руководство, чтобы следовать - JavaScript довольно легко копировать / вставлять и редактировать:D