2012-05-24 71 views
-3

爲什麼我的Javascript數組是空的? 在一個while循環中,我填充一個變量($ btext)。當我回顯$ btext時,一切都顯示正常:在javascript數組中的php變量

但是,如果我嘗試填寫JavaScript數組,沒有什麼是打印在那裏。

我這是怎麼填的PHP變量$ btext:

$btext .= "\"".${'name_'.$user}."\","; 

這裏的JavaScript部分:

var battletext = new Array(<? echo $btext; ?>); 

如果我定義$ btext像:

$btext = "\"Hallo\", \"Welt\""; 

的源代碼如下所示:

<script> 
var battletext = new Array("Hallo", "Welt"); 
</script> 
+0

這很難說,你的問題是這個問題的。 – Gareth

+1

你爲什麼認爲這將是空的? battletext的長度爲2. – Bergi

+0

空數組在哪裏? ()) – JJJ

回答

6

你應該只使用JSON編碼:

$battletext = array("Hallo", "Welt"); 

HTML:

<script> 
var battletext = <?php echo json_encode($battletext); ?>; 
</script> 

來源:

<script> 
var battletext = ["Hallo", "Welt"]; 
</script> 
+0

如何在while循環中填充$ battletext? – Quicknation

+0

爲了解釋我喜歡做什麼:我喜歡在循環中填寫一個變量($ btext),之後JS應該遍歷變量的每個部分並在文本框中顯示 – Quicknation

+0

@Quicknation您的循環中不使用字符串連接('$ btext。=')在循環之前聲明'$ btext = array()',並在循環內部使用這一行:'$ btext [] = $ {'name _'。$ user};' - 那麼你有一個包含所有名稱的PHP數組,其中'json_encode()'將轉換爲有效的Javascript [數組文本](http://www.javascriptkit.com/javatutors/literal-notation.shtml)。作爲一個方面說明,你最好首先使用一個數組來代替變量名稱 – DaveRandom