我将PHP变量传递给Javascript,但仅限于代码中的特定点。随着PHP代码的继续,我需要的变量也会发生变化。我可以轻松地运行Javascript并在页面加载完成后抓取PHP变量,但这不会传递我想要的信息。我希望Javascript在那时获取PHP变量,然后忽略对它的后续更改。
我正在使用的实际程序是几千行代码,所以我创建了一个简单的页面来解决这个问题。下面的代码显示了我正在尝试做的事情。
<?php
$php_var = 'something';
if(true) {
$php_var = 'new';
echo '
<script type="text/javascript">
js_var="<?php echo $php_var; ?>";
alert(js_var);
</script>
';
}
$php_var = 'later changes';
?>
<script type="text/javascript">
var js_var;
</script>
然而,这不起作用。运行内联脚本时会设置js_var,但它只是设置为一个表示<?php echo $php_var; ?>
的字符串,而不是实际评估它。
答案 0 :(得分:2)
首先运行PHP,然后运行任何JS发送到浏览器。我想你只想要这个:
echo '<script type="text/javascript">
js_var = '.json_encode($php_var).';
alert(js_var);
</script>';
答案 1 :(得分:1)
$php_var = "foo";
echo '
<script>
var js_var = '. json_encode($php_var) .';
alert(js_var);
</script>
';
产地:
<script>
var js_var = "foo";
alert(js_var);
</script>