如何用javascript打印php数组


How can print a php array in javascript

我有一个数组$results,我需要在代码的javascript部分中使用它。我尝试过json_encode(),但它不起作用。。

这是代码

<?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>

只需用json_encode()回显js中的php数组,如下所示:

$phpArray = array('name'=>'mani','email'=>'test@gmail.com','mobile'=>'123467890');

PHP数组看起来像这个

Array
(
    [name] => mani
    [email] => test@gmail.com
    [mobile] => 123467890
)
<script>
var jsArray = [];
var jsArray = <?php echo json_encode($phpArray);?>;
console.log(jsArray);
</script>

你会在你的控制台中得到这个

 Object { name="mani",  email="test@gmail.com",  mobile="123467890"}

怎么样

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

然后在javascript代码中的任何位置使用$results,但请确保在使用该脚本块之前已加载该脚本块。

您可以这样尝试在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>

您可以简单地使用以下代码:

<?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数组。