0

我将 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>

如何将 $var 访问到 test.js?

4

5 回答 5

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>
于 2013-10-22T10:50:13.940 回答
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 中访问

于 2013-10-22T10:51:57.847 回答
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%');
于 2013-10-22T10:56:33.097 回答
1

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

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

然后,您可以在test.jsasvariablewindow.variable.

于 2013-10-22T10:50:23.660 回答
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>

现在您可以通过 myJsVar 访问 var

于 2013-10-22T10:50:47.543 回答