получение переменных, запрашиваемых из php в javascript

Попытка нового метода нанесения маркера на карту Google с моим lat / long, запрашиваемым из базы данных. Когда я создаю переменные внутри тега сценария jquery, он работает, но я не могу сделать вызов вне этого сценария. Но когда я пытаюсь установить эти переменные с помощью json_encode из массива php вне этого скрипта, консоль возвращается с

Uncaught SyntaxError: Неожиданный токен < Индекс: HTML: 29

 <!DOCTYPE html>
<html>
<head>
<style>
#map {
width: 1200px;
height: 900px;
}
</style>
<script src="https://maps.googleapis.com/maps/api/js"></script>
<script src="http://code.jquery.com/jquery-1.11.3.min.js">></script>
<script type = "text/javascript">
function initialize() {

var myLatlng = new google.maps.LatLng(38.4403, -122.5463);
var mapOptions = {
zoom: 10,
center: myLatlng
}
var map = new google.maps.Map(document.getElementById("map"), mapOptions);

var marker = new google.maps.Marker({
position: myLatlng,
title:"Hello World!"});
marker.setMap(map);
}

var latitude = <?php echo json_encode($lat);?>;
var longitude = <?php echo json_encode($long);?>;
var LatLong = new google.maps.LatLng(latitude, longitude);
var marker1 = new google.maps.Marker({
position: LatLong;
title:"Test"});
marker1.setMap(map);
</script>
</head>
<body onload = "initialize()">
<div id="map"></div>
</body>
</html>

PHP для запроса по базе данных:

<?php

require("server_info.php");


$connection=db2_connect($database, $username, $password);
if (!$connection) {  die('Not connected : ' . db2_conn_error());}
$query = "SELECT lat,long FROM SCHOOL";
$stmt = db2_prepare($connection, $query);
$result = db2_execute($stmt);


$lat = array();
$long = array();
while ($row = db2_fetch_array($stmt)) {
$lat = $row[0];
$long = $row[1];
}
//echo json_encode($lat);
//echo json_encode($long);

db2_close($connection);
?>

2

Решение

Проблема в том, что ваш файл называется index.html, По умолчанию только файлы с .php суффиксы выполняются с использованием PHP. Так как у него есть .html расширение, веб-сервер просто возвращает файл дословно в браузер, вместо того, чтобы запустить его через PHP, так <?php echo json_encode($lat); ?> отправлено клиенту, и это не является допустимым Javascript.

Вы должны переименовать его в index.php, затем он будет выполнен с использованием PHP, и переменные будут заменены.

Но похоже, что проблема не в этом. Вы никогда не устанавливаете переменные $lat а также $long в любом месте сценария. Вы устанавливаете их в совершенно другом сценарии.

Вероятно, вам следует использовать AJAX для вызова сценария запроса из Javascript.

0

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

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

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