一直试图将我的数据从我的while循环保存到脚本变量但没有成功。如果我想将我的php数据保存到脚本变量,请举个例子。这对我不起作用。任何人都有任何想法?不想手动保存所有数据。非常感谢答案!问你是否理解:)
$id = 0;
while($rows = mysql_fetch_array($data)){
$id = $id + 1;
$data = $rows['data'];
echo "<script>";
echo "var data" . $id . " = " . $data . ";"; //???
echo "</script>";
}
答案 0 :(得分:4)
这里最好的办法几乎就是创建一个数组(在PHP端),然后立即输出整个数组。
假设您已在$array
中构建了一个数组,请按以下步骤输出数据:
echo "<script>var data = " . json_encode($array) . ";</script>"
更多关于json_encode
in the docs,但基本上它将PHP数据编码为有效JSON。由于JSON是JavaScript对象和数组初始化程序语法的子集,因此您可以安全地输出JSON文本作为赋值的右侧,如上所述。
在客户端脚本中,您可以通过data[0]
,data[1]
等方式访问每个项目。
另外,请注意Nathan Loding在问题评论中指出的内容:
... [您正在调用
data[data.length - 1]
,然后[有]mysql_fetch_array($data)
两行进一步向下,从而覆盖$data = $rows['data']
......
...这会使你的获取循环陷入困境。
答案 1 :(得分:0)
您正在每次迭代时复制脚本标记 您还需要用双引号或单引号括起数据 但它并不那么安全..
$id = 0;
$data = "";
$vars = "";
while($rows = mysql_fetch_array($data)){
$id = $id + 1;
$data = $rows['data'];
$vars .= "var data" . $id . " = \"" . addslashes( $data ). "\";"; //???
}
echo "<script>";
echo $vars;
echo "</script>";
}