将PHP $结果数据传递给Javascript

时间:2013-08-14 04:06:58

标签: php javascript

这是我用来从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?

1 个答案:

答案 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;数据