Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/296.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
获取从php到javascript的查询变量_Javascript_Php_Jquery_Maps - Fatal编程技术网

获取从php到javascript的查询变量

获取从php到javascript的查询变量,javascript,php,jquery,maps,Javascript,Php,Jquery,Maps,尝试在google地图上绘制标记的新方法,从数据库中查询我的lat/long。当我在jquery脚本标记中创建变量时,它可以工作,但我无法在该脚本之外进行调用。但是,当我尝试使用脚本之外的php数组中的json_编码设置这些变量时,控制台返回 未捕获的语法错误:意外标记 函数初始化(){ var mylatng=newgoogle.maps.LatLng(38.4403,-122.5463); 变量映射选项={ 缩放:10, 中心:myLatlng } var map=new google.ma

尝试在google地图上绘制标记的新方法,从数据库中查询我的lat/long。当我在jquery脚本标记中创建变量时,它可以工作,但我无法在该脚本之外进行调用。但是,当我尝试使用脚本之外的php数组中的json_编码设置这些变量时,控制台返回

未捕获的语法错误:意外标记

#地图{
宽度:1200px;
高度:900px;
}
>
函数初始化(){
var mylatng=newgoogle.maps.LatLng(38.4403,-122.5463);
变量映射选项={
缩放:10,
中心:myLatlng
}
var map=new google.maps.map(document.getElementById(“map”)、mapOptions);
var marker=new google.maps.marker({
职位:myLatlng,
标题:“你好,世界!”
});
marker.setMap(map);
}
var纬度=;
变量经度=;
var LatLong=new google.maps.LatLng(纬度、经度);
var marker1=新的google.maps.Marker({
职位:拉特朗;
标题:“测试”
});
marker1.setMap(map);
通过数据库查询的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);
?>

问题是您的文件名为
index.html
。默认情况下,仅使用php执行后缀为
.php
的文件。由于它有一个
.html
扩展名,Web服务器只是将文件逐字返回到浏览器,而不是通过PHP运行,因此
被发送到客户端,这是无效的Javascript

您应该将它重命名为
index.php
,然后使用php执行它,并替换变量

但问题似乎不止这些。您从未在脚本中的任何位置设置变量
$lat
$long
。您正在用完全不同的脚本设置它们


您可能应该使用AJAX从Javascript调用查询脚本。

这看起来像是一个JS错误,这意味着您可能是从一个.html文件运行该脚本,该文件通常不是作为php执行的。如果您在该页面上查看源代码,您会看到原始php代码吗?@neilsimp1:no.json_Encode会处理所有事情。OP只需要提供
.js
文件中有HTML时
.js
文件不应在代码周围包含
。如果您在浏览器中看到php代码,则它不会在服务器上执行。e、 g.您需要将其重命名为.php,或者告诉您的服务器将.html文件视为php脚本。@Barmar:如果是.js文件,那么错误将出现在第1行,因为html根本不是有效的js。好的,在做了一些研究之后,这听起来差不多了。我确实不熟悉服务器端web编程,但我将研究ajax。
<?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);
?>