В настоящее время у меня есть страница html, разделенная на 2 столбца - правая сторона представляет собой карту Leaflet с маркерами, а левая часть описывает немного больше о маркерах. Я загружаю карту Leaflet, используя данные geo Json справа и карта и маркеры отображаются нормально. Теперь я хочу взять те же географические данные Json и использовать их для заполнения левой части страницы php. Таким образом, при добавлении сайтов необходимо обновить только один файл.
Вот пример моих данных geo Json:
var historicalMarkers = {
"type": "FeatureCollection",
"features": [
{
"type": "Feature",
"geometry": {
"type": "Point",
"coordinates": [-77.423603, 38.865608 ]
},
"properties": {
"id": 1,
"siteName": "House14"
}
},
{
"type": "Feature",
"geometry": {
"type": "Point",
"coordinates": [ -77.416770, 38.923650]
},
"properties": {
"id": 2,
"siteName": "Meeting House"
}
}..........
На главной странице php, Я просто включаю файл geo Json (мест. js) и код geoJson / Leaflet (map-geo Json. js).
На этой главной странице php я хотелось бы описания каждого из маркеров. В map-geo Json. js я передаю данные обратно php через ajax следующим образом:
// get stuff ready for php
var historicalData = [];
for (var i = 0; i < historicalMarkers.features.length; i++) {
var currentFeature = historicalMarkers.features[i];
var id = currentFeature.properties.id;
var siteName = currentFeature.properties.siteName;
console.log(id, siteName);
historicalData.push({ id: id, siteName : siteName });
}
var historicalJson = JSON.stringify(historicalData);
$.ajax({
url: location.pathname, //current page
type: 'POST',
data: historicalJson
});
Данные отображаются на консоли и являются правильными. На моей странице php я хочу получить данные и поместить их в несколько различных разделов на странице:
$phpArray = json_decode($_POST['historicalJson']);
var_dump ($phpArray); // NULL is displayed
foreach ( $phpArray as $value )
{ ?>
<div class="id">
<h4><a href="#"><?php echo $value['id']; ?></a></h4>
</div>
<div class="siteName">
<h4><a href="#"><?php echo $value['siteName']; ?></a></h4>
</div>
......
<?php } ?>
Но ничего не отображается. Я также попытался повторить
echo $value[0]->id;
echo $value['id']
Почему-то я неправильно собираю данные на странице php и отображаю их в div. Кто-нибудь может дать предложение? Я уверен, что это что-то маленькое, что мне не хватает, но я попробовал много, много способов получить данные в php. Спасибо