2013-02-10 33 views
4

我有這樣的:從PHP帶來數據到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的教程?

回答

5

嘗試使用PHP's json_encode function,然後嵌入數據:

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

就嘗試過了,也沒有工作 – Ryan 2013-02-10 12:23:59

+0

沒關係,不知道爲什麼,但作爲節能一個.html不工作,但將其保存爲.php,現在它可以工作。我想當你打開<?php到.html文件時,並不是所有的功能都能正常工作 – Ryan 2013-02-10 12:33:05

3

我意識到這是一個有點遲到了,但你不能包括.html文件PHP,並將它成功地解析,除非你的服務器設置爲這樣做。

您需要添加以下代碼片段之一,您的.htaccess:

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

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