将PHP中的数据导入D3.JS

时间:2013-02-10 04:29:47

标签: php javascript variables 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.';
}
?>

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

我找到this tutorial关于如何将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的教程吗?

2 个答案:

答案 0 :(得分:5)

尝试使用PHP's json_encode function,然后嵌入数据:

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

答案 1 :(得分:3)

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

您需要将以下代码段之一添加到.htaccess:

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

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