2016-05-14 99 views
1

我有一個數組$results,我需要在代碼的JavaScript部分中使用它。我試圖json_encode(),但它沒有工作..如何在javascript中打印php數組

下面是代碼

<?php 
    //... 
    include realpath($_SERVER['DOCUMENT_ROOT'] . '/Classes/Controllers/ReportController.php'); 
    $vaccRep= ReportController::getVacRep(); 

    include realpath($_SERVER['DOCUMENT_ROOT'] . '/Classes/Controllers/VaccineController.php'); 
    $names=VaccineController::getVCName(); 
?> 

<canvas id="bar" height="195" width="250" style="width: 250px; height: 195px;"></canvas> 
<script> 
    //THIS IS THE PART THAT WILL BE THE OTPUT OF THE QUERY 

    var barChartData = { 
     labels: <?php$obj=json_encode($names); var_dump($obj);?>, 
     datasets: [{ 
      highlightFill: "#45668e", 
      highlightStroke: "#45668e", 
      fillColor : "#1ABC9C", 
      strokeColor : "#1ABC9C", 
      data: <?php $obj=json_encode($vaccRep); var_dump($obj);?> 
     }] 
    }; 


    new Chart(document.getElementById("bar").getContext("2d")).Bar(barChartData); 
    <?php $obj=json_encode($vaccRep); var_dump($obj);?> 
</script> 
+1

分享得到這個你試過的代碼。 –

+0

你可以json_encode在php中的數組,並在JavaScript中使用它。 –

+0

你的問題解決了? – C2486

回答

0

簡單地迴響在JS php的陣列json_encode(),像這樣:

$phpArray = array('name'=>'mani','email'=>'[email protected]','mobile'=>'123467890'); 

PHP數組看起來像這樣

Array 
(
    [name] => mani 
    [email] => [email protected] 
    [mobile] => 123467890 
) 

<script> 
var jsArray = []; 
var jsArray = <?php echo json_encode($phpArray);?>; 
console.log(jsArray); 
</script> 

你將在控制檯

Object { name="mani", email="[email protected]", mobile="123467890"} 
+0

@ n.am現在你可以投我的答案;);) –

0

怎麼樣

<?php 
    echo "<script>"; 
    echo "var $results = JSON.parse('" . json_encode($results) . "');"; 
    echo "<script>"; 
?> 

,然後使用$在JavaScript代碼的結果任何地方,但要確保這腳本塊在您使用它之前加載。

+2

由於'json_encode()'將生成有效的javascript對象,因此不應該需要'JSON.parse()' – RiggsFolly

0

你可以嘗試這樣的JavaScript打印PHP數組

<?php 
    $abc=["a","b","c"]; 
?> 
<script type="text/javascript"> 
    var abc = "<?php echo (implode(',',$abc));?>"; 
    var abcArr = abc.split(","); 
    console.log(abcArr); 
</script> 
+0

如果在此數組中包含逗號的字符串會怎樣?例如。 '[「a」,「b」,「c」]'。額外的空字符串將在該數組中,這是不正確的。 –

+0

@YuriyYakym,你有什麼建議來防止這種情況發生。我只是提供了方式。 – C2486

+0

只有在確定我們使用的分隔符不是任何數組元素的一部分時,纔可以使用您的解決方案。 –

0

您可以簡單地使用此代碼:

<?php 
    $array = ["a", 1, 2, "b,"]; 
    echo "<script>"; 
    echo "var data = ".json_encode($array).';'; 
    echo "</script>"; 
?> 

這段代碼的輸出將是: <script>var data = ["a",1,2,"b,"];</script>,會出現什麼創建正確的JavaScript數組。