3

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; ?>、実際に評価するのではなく、文字列に設定されるだけです。

4

2 に答える 2

2

PHPが最初に実行され、ブラウザに送信されるJSがすべて実行されます。私はあなたがこれを望んでいると思います:

echo '<script type="text/javascript">
    js_var = '.json_encode($php_var).';
    alert(js_var);
</script>';
于 2013-03-27T00:59:30.200 に答える
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>
于 2013-03-27T00:59:58.940 に答える