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

时间:2013-03-27 00:57:08

标签: php javascript variables

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

2 个答案:

答案 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>