我正在尝试将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'],";
}
?>]
答案 0 :(得分:4)
使用PHP的json_encode&amp;然后直接回到javascript,例如:
$fruit = array("banana", "apple", "strawberry", "raspberry", "orange");
$json_fruit = json_encode($fruit);
echo "var fruit = $json_fruit;";
编辑:我已将此答案更新为不再使用eval(),因为它不是必需的。当我第一次回答这个问题时,我刚刚开始使用JSON。
答案 1 :(得分:2)
你这样做:
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 ","
}
?>]
答案 2 :(得分:1)
PHP在服务器上运行。 JavaScript在客户端上运行。
您可以从PHP生成JavaScript,但不能在JavaScript中运行PHP。
(值得一读的是网络的各个组成部分如何工作,特别是HTTP,以便更好地理解这一切。)
如果您想在浏览器中执行PHP操作以响应客户端操作而不重新加载整个页面,请调查'ajax'。