[英]how to set the php variable with javascript value and use that php variable in external php file
[英]how to set a variable for external javascript file?
我试图弄清楚如何设置要在外部js文件中使用的session_id变量。 这就是我所拥有的。
php文件:
$output = '<script src="test.js">
var session_id = '.$_SESSION['id'].'
</script>';
print $output;
js文件:
alert(session_id);
有了这个我得到一个错误,说没有定义session_id。 有没有办法传递此信息?
我知道我可以使用信息设置隐藏的输入,但是我认为有一种更好的方法。
哼,那:
$output = '<script type="text/javascript> var session_id = '.$_SESSION['id'].'</script><script type="text/javascript" src="test.js"></script>';
print $output;
?
如果要包含外部JS文件,则不能在脚本标记之间放置代码。 所以你要:
<script type="text/javascript">
var session_id = <?php print $_SESSION['id']; ?>;
</script>
<script type="text/javascript" src="test.js"></script>
尽管您可以通过将会话ID设置为HTML中的隐藏表单字段,然后在test.js中使用DOM方法来查找它来解决这种混乱的情况。
如果您可以将session_id作为全局变量处理,那么将执行以下操作:
<script>
var session_id = '<?php echo $_SESSION['id'];?>'
</script>
<script src="test.js"></script>
如果您想使变量仅对闭包等中的javascript文件可用,则可以通过PHP解析器发送js文件或为js文件使用参数,但是后者实际上不是很容易从javascript访问,请参阅我的问题关于这个 。
在中的内容<script>
标记,如果没有找到JavaScript文件时,才会执行。 在未设置文件之前,在单独的<script>
标记中设置变量:
<script>
var session_id = '<?=$_SESSION['id']?>';
</script>
<script src="test.js">
</script>
另一个解决方案是让PHP提供如下脚本:
var value1 = '{value1}';
var value2 = '{value2}';
...
// script goes here
{value1}
和{value2}
标签替换为您的数据:
if ($_GET["script"])
{
$data = array(
"value1" => $_SESSION["id"], # i.e.
"value2" => $foo
);
$script = file_get_contents($script . ".js");
foreach ($data as $key => $value)
{
$script = str_replace("{" . $key . "}", $value, $script);
}
header("Content-Type: text/javascript");
echo $script;
exit();
}
<script type="text/javascript" src="?script=myscript"></script>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.