将php变量访问到外部javascript文件中

时间:2013-10-22 10:47:40

标签: javascript php

我将var值转换为php代码。我想将它访问到包含的test.js文件中。

<?php
 session_start();
$var=$_SESSION['my_id'];  // I want to access $var into test.js included below
?>
<!DOCTYPE html>
<html>
<head>
<script type="text/javascript" src="test.js"></script>
<!-- AddThis Smart Layers END -->
</head>
<input type="submit" onclick="func();">  Button </input> //This function call test.js
<body>

如何在test.js中访问$ var?

5 个答案:

答案 0 :(得分:4)

将其作为参数传递:

<input type="submit" onclick="func('<?php echo $var; ?>');">

在test.js中:

function func(param){
   console.log(param); // contents of $var
}

或全局设置:

<script>
   var param = "<?php echo $var; ?>";
</script>

答案 1 :(得分:2)

您可以像这样使用 -

<?php
 session_start();
 $var=$_SESSION['my_id']; 
?>
<!DOCTYPE html>
<html>
<head>
<script type="text/javascript">
  var my_id_j = '<?php echo $var; ?>';
</script>
<script type="text/javascript" src="test.js"></script>
<!-- AddThis Smart Layers END -->
</head>
<input type="submit" onclick="func();">  Button </input> //This function call test.js
<body>

这里我在添加test.js之前添加了以下行。

<script type="text/javascript">
  var my_id_j = '<?php echo $var; ?>';
</script>

在此变量my_id_j是全局变量,可以在test.js

中访问

答案 2 :(得分:2)

有两种方法可以处理这种情况:

常见案例:将其作为函数

中的参数传递

示例:

 <?php $myvar = 'Hello'; ?>
   // other code
 <script type="text/javascript" src="yourfile.js"></script>

   // and when you are about to call the function:
 <input type="submit" onclick="func('<?php print $myvar; ?>');">

相当特殊情况:加载JS文件并替换特殊值。

过去,有些情况我无法做到。我不记得目前有任何简单的例子,但我所做的就是:

 <?php
   $my_var = 'Hello';
   $my_script = file_get_contents('path/to/file.js');
   $my_script = str_replace('%SPECIAL_VALUE%', $my_var, $my_script);

   print '<script type="text/javascript">'.$my_script.'</script>';
 ?>

然后我就可以通过以下方式简化我的Javascript:

 var myvar = '%SPECIAL_VALUE%';

 alert('%SPECIAL_VALUE%');

答案 3 :(得分:1)

您必须先将变量传递给javascript:

<script type="text/javascript">
    var variable = "<?=$_SESSION['my_id'];?>";
</script>
<script type="text/javascript" src="test.js"></script>

然后,您可以在test.js variablewindow.variable内使用它。

答案 4 :(得分:1)

你可以这样做:

<?php
session_start();
$var=$_SESSION['my_id'];  // I want to access $var into test.js included below
?>
<!DOCTYPE html>
<html>
<head>
<script type="text/javascript>
var myJsVar = "<?php echo $var;?>";
</script>
<script type="text/javascript" src="test.js"></script>
<!-- AddThis Smart Layers END -->
</head>
<input type="submit" onclick="func();">  Button </input> //This function call test.js
<body>

现在您可以通过我的sVar

访问var了