繁体   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