0

一直在尝试将我的数据从我的 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>";

}
4

2 回答 2

4

这里最好的做法几乎肯定是创建一个数组(在 PHP 端),然后一次输出整个数组。

假设您已经在 中构建了一个数组$array,那么您将如何输出它:

echo "<script>var data = " . json_encode($array) . ";</script>"

更多json_encode 在文档中,但基本上它将 PHP 数据编码为有效的JSON。由于 JSON 是 JavaScript 对象和数组初始值设定项语法的子集,因此您可以安全地将 JSON 文本输出为赋值的右侧,如上所述。

在客户端脚本中,您可以通过 、 等访问data[0]每个data[1]项目data[data.length - 1]


另外,请注意Nathan Loding在对该问题的评论中指出的内容:

...[你]打电话mysql_fetch_array($data),然后[有]$data = $rows['data']两行再往下,从而覆盖$data...

...这往往会弄乱你的 fetch 循环。

于 2013-11-04T15:02:58.403 回答
0

You are duplicating the script tag on every iteration.
you also need to surround the data in double or single quotes.
But it is not so safe..

$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>";

}
于 2013-11-04T15:01:19.623 回答