-4

这是我用来从 MySQL 数据库中读取值的 PHP 代码。

我正在访问存储在我的表“数据”中的值。我想读取“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?

4

1 回答 1

2

我喜欢将 PHP 作为立即调用函数表达式 (IIFE) 的参数“注入”到 JS 中。

给定一个这样的 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>

PHPjson_encode()是真正的魔力,因为它将 PHP 结构序列化为 JSON。我的示例中的 JSON 非常简单,可以将其视为 JS 而不是需要解析的字符串。

另一件事——IIFE,只是将我需要进出 PHP 的任何区域(如果我还有其他要注入的东西)合并到一个区域中,并使用“注入”数据本地化代码。

于 2013-08-14T04:13:55.133 回答