2011-11-04 61 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將它分配爲已經是變量的上下文。