簡體   English   中英

如何將PHP變量轉換為JavaScript變量?

[英]How do I convert PHP variables to JavaScript variables?

我正在嘗試將php變量插入javascript。

這是損壞的代碼:

 var tokens = [<?
 $result = mysql_query("SELECT * FROM accounts ORDER BY id DESC") or die (mysql_error()); 
 while ($row = mysql_fetch_array($result)) { 
 $user_name = $row['user'];
 $user_id = $row['id'];
 echo "['$user_name','$user_id'],";
 }
 ?>]

使用PHP的json_encode,然后直接回顯到javascript,例如:

$fruit = array("banana", "apple", "strawberry", "raspberry", "orange");
$json_fruit = json_encode($fruit);

echo "var fruit = $json_fruit;";

編輯:我已更新此答案以不再使用eval(),因為它不是必需的。 當我第一次回答這個問題時,我才剛剛開始使用JSON。

你做這個:

 echo "['$user_name','$user_id'],";

...表示它將生成以下內容:

[ ['a','b'], ['a','b'], ['a','b'], ['a','b'], ]

請注意,它將始終以“,”結尾,這是不正確的語法。

正確的語法是:

[ ['a','b'], ['a','b'], ['a','b'], ['a','b'] ]

我不是PHP的人,但是我會說類似的東西可以解決這個問題:

 var tokens = [<?
 $result = mysql_query("SELECT * FROM accounts ORDER BY id DESC") or die (mysql_error()); 
 $i = 0;
 while ($row = mysql_fetch_array($result)) { 
 $i++;
 $user_name = $row['user'];
 $user_id = $row['id'];
 echo "['$user_name','$user_id']";
 if($i < sizeof($result)-1 ) // incorrect syntax, but you get the point
   echo ","
 }
 ?>]

PHP在服務器上運行。 JavaScript在客戶端上運行。

您可以從PHP生成JavaScript,但不能在JavaScript中運行PHP。

(值得閱讀有關Web的各個組件如何工作的信息,特別是HTTP ,以更好地理解所有這些。)

如果要在瀏覽器中執行PHP操作以響應客戶端操作而不重新加載整個頁面,請調查“ ajax”。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM