我想使用PHP变量作为javascript变量 - 特别是我想用PHP变量session_id();并将其用作javascript变量。
<?php
$php_var = session_id();
?>
<script language="JavaScript" type="text/javascript">
js_var = <?php echo($php_var ?>;
</script>
这似乎应该对我有用,但它不能有人建议更好的方法吗?
答案 0 :(得分:13)
我能想到的最佳方法如下:
<?php
$php_var = session_id();
?>
<script type="text/javascript">
var js_var = <?php echo json_encode($php_var); ?>;
</script>
PHP的json_encode
- 函数始终生成有效的JavaScript,如果您只是输出随机值,则无法确保这一点。如果您决定不使用json_encode()
,则至少应使用引号括起php值以防止语法错误。请注意逃避!
<?php
$php_var = session_id();
?>
<script type="text/javascript">
var js_var = "<?php echo $php_var; ?>";
</script>
答案 1 :(得分:3)
那很好。确保如果您正在回显的变量是一个字符串,您在其中放置引号并转义其中的任何引号,换行符等 - 例如,确保它确实输出为有效的JavaScript字符串文字。另外,请不要忘记var
之前的js_var
。
答案 2 :(得分:2)
您似乎已在echo
来电中打开了一个括号,但未关闭它。
此外,你应该在它后面加一个分号。你也忘记了引号(正如戈登在下面的评论中所说的那样)。
<?php
$php_var = session_id();
?>
<script language="JavaScript" type="text/javascript">
js_var = "<?php echo($php_var); ?>";
</script>
P.S.您可以使用'='字符替换 echo
来使用更少的代码:
js_var="<?=$php_var?>";
答案 3 :(得分:1)
它不起作用,因为您的代码段包含错误,应该是:
<?php
$php_var = session_id();
?>
<script language="JavaScript" type="text/javascript">
js_var = <?php echo $php_var ?>;
</script>