将数据从PHP引入D3.JS


Bringing data from PHP into D3.JS

我有这个:

<script type="text/javascript">
var dataset = [ 5, 10, 15, 20, 25 ];
        d3.select("body").selectAll("p")
            .data(dataset)
            .enter()
            .append("p")
            .text("New paragraph!");
</script>

它有效。然后我一直在学习MySQL/PHP,并且在一个小数据库中有一些数据。

<?php
if ( $results ) {
foreach($results as $row) {
    echo $row->eventName . "<br>";
}
} else {
echo 'No rows found.';
}
?>

这与它的其余部分一起工作,并显示一些随机的事件名称,如电影、购物、工作。

我找到了这个关于如何将PHP变量引入Javascript的教程,但我无法理解。为了简化而不是计算数组,我甚至改为只计算数据本身,但甚至无法获得数据。这就是我最后的尝试:

    <?php
$php_var = 1;
?>
<script type="text/javascript">
var dataset = <?php echo $php_var; ?>
        d3.select("body").selectAll("p")
            .data(dataset)
            .enter()
            .append("p")
            .text("New paragraph!");
</script>

然后我想也许阵列可以工作,所以尝试了这个

<?php
$php_var = array(
    5, 10, 15, 20, 25);
?>
<script type="text/javascript">
var dataset = $php_var
        d3.select("body").selectAll("p")
            .data(dataset)
            .enter()
            .append("p")
            .text("New paragraph!");
</script>

但也没有运气。有人能给我一些建议吗?或者给我一个关于如何将数据从PHP转换为Javascript的教程?

尝试使用PHP的json_encode函数,然后嵌入数据:

<?php
    $dataset = array(5, 10, 15, 20, 25);
?>
<script>
    var dataset = <?php echo json_encode($dataset); ?>;
    // ...
</script>

我意识到这对聚会来说有点晚了,但你不能在.html文件中包含php并成功解析它,除非你的服务器设置为这样做。

您需要在.htaccess:中添加以下片段之一

RemoveHandler .html .htm
AddType application/x-httpd-php .php .htm .html

<FilesMatch "'.html$">
ForceType application/x-httpd-php
</FilesMatch>