Я хочу использовать gmaps.js для добавления маркеров на карту на моем сайте. Я использую PHP Script, чтобы получить широту и долготу из моей БД, однако я использую
while($dbrowinfo = mysqli_fetch_assoc($rowfields))
Поэтому информация заканчивается после выполнения запроса к базе данных. На странице будет максимум 10 наборов данных, как со значением long, так и со значением lat (следовательно, 20 отдельных переменных).
Есть ли способ использовать переменные из PHP для передачи в jQuery до запуска сценария? Не могу понять, как jQuery — клиент, а PHP — на стороне сервера …
Спасибо за ваше время
Если вы спрашиваете, есть ли способ передать переменные из PHP в JavaScript до запуска сценария JQuery, ответ определенно да. Весь PHP будет работать до любого из JavaScript, поэтому вы можете просто вывести нужные данные в виде переменных JavaScript, например:
<html>
<?php
// Load the data into your PHP variables
$dataA = "some data";
$dataB = "some more data";
$dataC = 245; // numeric data
?>
<body>
<!-- now open a script tag -->
<script>
var jsVar1 = "<?= $dataA ?>";// If outputting string, you need to add quotes for js
var jsVar2 = "<?= $dataB ?>";
var jsVar3 = <?= $dataC ?>; // No quotes needed for a number
$(document).ready(function(){
console.log("data from php: " + jsVar1 + " " + jsVar2 + " " + jsVar3);
});
</script>
</body>
</html>
Поместите значения в массив PHP, а затем закодируйте их в массив Javascript с помощью json_encode
$coords = array();
while ($row = mysqli_fetchassoc($rowfields)) {
$coords[] = array('lat' => $row['lat'], 'lng' => $row['lng']);
}
echo '<script>var coords = ' . json_encode($coords) . ';</script>';
Это определяет переменную Javascript coords
который содержит массив объектов, например:
var coords = [
{ lat: 50.0, lng: 101.1 },
{ lat: -20.8, lng: 55.3 },
...
];
Затем вы можете использовать этот массив в своем коде jQuery.