Передача данных JSON из php-файла в файл javascript с использованием AJAX

Попытка получить переменную json из файла php и перейти к файлу javascript.
Я делаю карту листовки и сохраняю информацию для маркеров в базе данных mysql, затем я использую php-файл, чтобы извлечь эту информацию и поместить ее в массив.

Эта проблема: По какой-то причине файл Javascript неправильно использует данные, и я не могу понять, почему.

получить-data.php

$db = new mysqli('localhost', 'testuser', 'testpassword', 'testdb');
if($db->connect_errno > 0){
die('Unable to connect to database [' . $db->connect_error . ']');
}


$queryStmt = 'SELECT * FROM test';

$geojson = array(
'type' =>   'FeatureCollection',
'features' => array()
);

if($result = $db->query($queryStmt)) {
while($row = mysqli_fetch_assoc($result)){
extract($row);
$markers = array(
'type' => 'Feature',
'properties'        => array (
'name'          => $name,
'type'          => $type,
'id'            => $id,
'country'       => $country,
'territory'     => $territory,
),
'geometry'      => array(
'type'          => 'Point',
'coordinates'   => array($long,$lat)
)
);

array_push($geojson['features'], $markers);
}
};

header('Content-type: application/json');
echo json_encode($geojson, JSON_NUMERIC_CHECK);
$db = NULL;

data.js

var result = [];
$.get("get-data.php", function(geojson) {
result = geojson;
});

capitolsLayer = L.geoJson(result, {
//lots of stuff with maps and everything

index.php (куда на самом деле идет весь код карты)

<script type="text/javascript" source="data.js"></script>
<script>
//lots of map code
var map = L.map();
capitolsLayer.addTo(map);
</script>

В вызове ajax data.js я попытался добавить

alert(result);

И то, что всплыло, было просто [объект объекта]

На index.php ошибки не отображаются, маркеры просто не отображаются.

РЕДАКТИРОВАТЬ
Обновление с решением!
После много чтения и изучения и много копания я нашел ответ!
Я изменил это:

$.get("get-data.php", function(data) {
result = data;
});
capitols = new L.geoJson(result, {
//map stuff here

К этому:

$.getJSON("get-data.php", function(data) {
capitols.addData(data);
}).complete;

capitols = new L.geoJson(null, {
//map stuff here

2

Решение

Попробуйте выполнить такой анализ данных JSON и получить доступ к объекту json.

var result = [];
$.get("get-data.php", function(geojson) {
result = JSON.parse(geoJson);
alert (result.properties.name);
});
1

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

Других решений пока нет …

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