这是我用来从MySQL数据库中读取值的PHP代码。
我正在访问存储在我的表'data'中的值。我想读取'val'列中的所有数据,然后将它们传递给JavaScript。
<?php
mysql_connect("localhost", "root", "root") or die(mysql_error());
mysql_select_db("db") or die(mysql_error());
$query = "SELECT data.val from data";
$i=0;
$result = mysql_query($query) or die(mysql_error());
$i=0;
$result = mysql_query($query) or die(mysql_error());
while ($row = mysql_fetch_array($result))
{
echo $row[$i];
echo "<br />";
}
?>
我现在想将$ result中的值传递给JavaScript,我正在使用D3.js绘制带有值的图形。
一旦发布,我正在使用var数组存储需要在图表上绘制的点。
如何将数据从PHP发布到JavaScript?
答案 0 :(得分:2)
我喜欢&#34;注射&#34; PHP将JS作为立即调用函数表达式(IIFE)的参数。
给出一个PHP数组:
<?php
$data = array(
'key1' => 'val1',
'key2' => 'val2',
);
?>
我执行以下操作:
<script>
(function (data) {
/*
* Code in here now has access to the variable, data, which is a JS object like:
{
key1: 'val1',
key2: 'val2'
}
*/
}(
<?php echo json_encode($data); ?>
));
</script>
PHP json_encode()
是真正的神奇之处,因为它将PHP结构序列化为JSON。我的示例中的JSON很简单,可以将其视为JS而不是需要解析的字符串。
另一件事 - IIFE,简单地整合了我需要进出PHP的任何领域(如果我还要注入其他东西)到一个区域并使用&#本地化代码34;注入&#34;数据