2011-11-04 157 views
2

我对JavaScript有些新鲜感,并且对全局变量有问题。我有一个组ID,它是我的PHP会话变量的一部分,我想放入一个JavaScript全局变量,以便我可以访问JavaScript中的值。但JavaScript始终将变量显示为undefined,所以我必须做出错误的事情。概括地说,我有以下代码:JavaScript全局变量undefined问题

<head> 
    <script type="text/javascript">var group = <?php echo($group)?>;</script> 
</head> 
<body> 
<script type="text/javascript"> 
    function clicked() { 
     alert(window.group); 
    } 
</script> 

alert窗口弹出它表明不确定的,但我可以通过产生看看源告诉,以及萤火该值被设置为变量在一个点上。

我在做什么错?

+2

值是一个字符串吗?它是否需要'var group ='<?pgp echo($ group)?>';'? –

+0

这是问题!谢谢马特! –

+0

我认为这是一个数字:) – ValeriiVasin

回答

1

这种问题的最佳解决方案是在打印php变量作为JS变量时始终调用json_encode。在你的情况下,如果你的字符串包含一个换行符或者一个报价,它会失败

<script type="text/javascript">var group = <?php echo(json_encode($group)) ?>;</script> 
0

使用:

<script type="text/javascript">window.group = <?php echo($group)?>;</script> 
0

如果<?php echo($group) ?>结果是一个字符串,那么你就需要把报价在script源,像这样:

<script type="text/javascript">var group = '<?php echo($group)';</script> 

你并不需要使用window.group将它分配为已经是变量的上下文。