我有一个数组$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数组。