Массив PHP для jQuery — gmaps.js не создает маркер

Я пытаюсь использовать массив PHP, чтобы получить значения long и lat из базы данных, и поместить их на карту, используя gmaps.js.

До сих пор я создал массив в PHP и повторил это на своей странице, чтобы убедиться, что отображаются правильные значения.

$data = array();
$data['latitude'] = array($lat);
$data['longitude'] = array($lng);
echo json_encode($data);

Таким образом, $ data — это массив со значениями, которые я хочу получить.

Затем я хочу использовать jQuery для получения данных из json encode, поместить их в местоположения маркеров карты и отобразить маркеры следующим образом:

$.ajax({
type: "POST",
url: "phppage.php",
dataType: "JSON",
success: function(data) {
$.each(data, function(key, value) {
poi_marker = {
marker: {
lat: data.latitude,
lng: data.longitude,
}
}
}
poi_markers.push(poi_marker);
});

map.addMarkers(poi_markers);
}
});

Я не получаю ошибок в своей консоли (используя firefox и firebug), карта отображается, но маркеры не отображаются.

1

Решение

Я не думаю, что ваш код на самом деле делает то, что вы думаете, что он делает. Увидеть эта скрипка за то, что на самом деле происходит с вашей петлей.

Если вы храните массив по-разному на стороне PHP, вам будет проще перебрать несколько маркеров в JS. Кроме того, я не думаю, gmaps.js нужен этот дополнительный «маркер» ключ в объекте.

Новый PHP

$data = array();
$data[] = array(
'latitude' => $lat
,'longitude' => $long
);
echo json_encode($data);

Новый JS

var poi_markers = []; // make sure you declare this before using it. if you already declare it somewhere else, don't use this line
$.ajax({
type: "POST",
url: "phppage.php",
dataType: "JSON",
success: function(data) {
$.each(data, function(key, value) {
var poi_marker = {
lat: value.latitude,
lng: value.longitude
}
poi_markers.push(poi_marker);
});

map.addMarkers(poi_markers);
}
});

У вас могут быть проблемы, потому что вы указываете dataType: "JSON" но (по крайней мере, в коде вы разместили) вы не меняете заголовок на стороне php. Возможно, вам придется добавить эту строку в начало phppage.php

header("Content-Type: application/json", true);

Где я узнал все, что знаю о gmaps.js

1

Другие решения

Я полагаю, что данные были успешно получены по мере необходимости

$.ajax({
type: "POST",
url: "phppage.php",
dataType: "JSON",
success: function(data) {
$.each(data, function(key, value) {
map.addMarker{
lat: data.latitude,
lng: data.longitude
}
}
}
});

Проверь это

0

По вопросам рекламы [email protected]