1

我有一个 php 文件作为我的主页,我想将一个 php 变量传递给一个用 php 绘制的外部 js 文件。我有几个 php 的外部 js 文件可以正常工作,但“不”依赖于主页中的 php。有些依赖于主页上的 JavaScript,但我想摆脱它。我的意图是通过限制其上的 JavaScript 数量、增加动态以及允许更好的站点管理来保持主页的清洁。

也许如果我了解外部文件与调用页面的自然关系,我不知道。例如,下面的代码是我当前的一些代码,它假定外部 js 脚本,即 php 文件,从主页看到“functions.php”和 $sel_entity。但是,它似乎不是那样工作的。我猜也许functions.php 需要包含在外部文件中,但$sel_entity 没有任何线索。我知道我可以将变量回显到主页上的 js 变量,但我的计划需要一些更动态的东西。这里的任何帮助都会很棒。谢谢!

例如,主页是这样的:

<?php require_once("includes/connection.php"); ?>
<?php require_once("includes/functions.php"); ?>
<?php  $sel_entity = $_GET['entity']; ?>
...//bunches of code 
<script type="text/javascript" src="javascripts/lines.php"></script>

那么js文件lines.php是这样的:

<?php
 Header("content-type: application/x-javascript");
  $job_set = get_jobs($_GET['entity']);                     
  while ($job = mysql_fetch_array($job_set)) {
    echo "
        var jobLine";
echo $job["Project_ID"];
echo " = [new google.maps.LatLng(lati, longi),
";
$jobIdCoords = get_jobCoord_by_id($job["Project_ID"]);
echo " new google.maps.LatLng(";
echo $jobIdCoords['lat'] . ", ";
echo $jobIdCoords['long'] . ")]; ";
                    }
  ...// bunches more code
?>  
4

1 回答 1

2

最好的方法是使用 $_SESSION,但一定要在“js”文件中启动会话。

<?php
session_start();
$_SESSION["foo"] = "bar";
?>
<script type="text/javascript" src="javascripts/lines.php"></script>

然后是 JS 文件:

<?php
Header("content-type: application/x-javascript");
session_start();
echo 'var foo = "'.$_SESSION["foo"].'";';
?>
alert(foo);

但是,您应该也可以像这样使用 $_GET :

<script type="text/javascript" src="javascripts/lines.php?foo=bar"></script>

和“JS”文件:

<?php
Header("content-type: application/x-javascript");
echo 'var foo = "'.$_GET["foo"].'";';
?>
alert(foo);
于 2012-06-10T23:52:12.267 回答