我已经查看并将继续查看更多论坛帖子,但我还没有找到解决这个简单问题的方法。
很简单,我从服务器获取一些数据,我在我的 .php 文件中操作这些数据并创建四个变量。我的变量是(为简单起见)$v1、$v2、$v3、$v4。现在我还有一个 .js 文件,我想在其中使用这四个变量。具体来说,我想在谷歌地图标记中使用这些变量(但如果你不知道,你不必回答)但是如何我可以抓住这些变量并在我的谷歌地图标记(.js 文件)中使用它们的值吗?
我已经查看并将继续查看更多论坛帖子,但我还没有找到解决这个简单问题的方法。
很简单,我从服务器获取一些数据,我在我的 .php 文件中操作这些数据并创建四个变量。我的变量是(为简单起见)$v1、$v2、$v3、$v4。现在我还有一个 .js 文件,我想在其中使用这四个变量。具体来说,我想在谷歌地图标记中使用这些变量(但如果你不知道,你不必回答)但是如何我可以抓住这些变量并在我的谷歌地图标记(.js 文件)中使用它们的值吗?
如果您在加载外部脚本之前在脚本标记中声明全局变量,则外部脚本中将可用。
<html>
<head>
<script type="text/javascript">
var v1 = <?=$v1?>,
v2 = <?=$v2?>,
v3 = <?=$v3?>,
v4 = <?=$v4?>;
</script>
<script type="text/javascript" src="js/someExternalScript.js"></script>
</head>
<body>
Some body
</body>
</html>
如果需要,您还可以使用脚本标记在您包含的另一个页面中定义变量,例如 javascript 外部文件。按照脚本出现在源代码中的顺序,后面的脚本将可以访问先前脚本中的全局变量(这里的全局意味着未在函数/闭包范围内定义)。例如,大多数人将 jquery 作为外部脚本包含在内,并且 jquery 之后包含的所有脚本都可以访问它。
你可以做两件事:
我将首先给出第二条指令,因为它应该让您对这两种技术之间的关系有所了解。
这假设您正在编写的脚本不是基于 Ajax 的 - 只是一些标准的 generate-page-with-PHP 并包含 .js。
编写一个将生成 Javascript 内容的 php 文件:
// /js/vars.php
$v1 = $v2 = $v3 = $v4 = time();
header("Content-type: text/javascript");
echo "window.Variables = {
v1: $v1,
v2: $v2,
v3: $v3,
v4: $v4
}";
(请注意,如果变量是字符串,则应添加引号)
<head>
在要在其中使用变量的文件之前要求该文件。
<script type="text/javascript src="/js/vars.php">
在您的 .js 文件中使用它。
var smth = Variables.v1 + Variables.v2;
由于许多原因,这是一个禁忌,其中包括:
编写一个将生成 JSON 数据的 php 文件:
// /js/vars.php
$v1 = $v2 = $v3 = $v4 = time();
$jsonArr = array(
'v1'=> $v1,
'v2'=> $v2,
'v3'=> $v3,
'v4'=> $v4
);
header("Content-type: application/json");
echo json_encode($jsonArr);
编写一些将使用 Ajax 提取数据的 JavaScript 代码。例如。使用 jQuery:
$.getJSON('js/vars.php', function(data) {
alert(data.v1+data.v2);
});