将PHP变量在特定点传递给Javascript

Pass PHP variable to Javascript at a specific point

本文关键字:Javascript PHP 变量      更新时间:2023-09-26

我将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; ?>的字符串,而不是实际计算它。

首先运行PHP,然后运行发送给浏览器的任何JS。我想你只是想要这个:

echo '<script type="text/javascript">
    js_var = '.json_encode($php_var).';
    alert(js_var);
</script>';
$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>