简体   繁体   English

如何在javascript中打印php变量并更改php的数组格式

[英]How to print php variable inside javascript and change php's array format

I use Chart.js to present my data. 我使用Chart.js展示我的数据。

var data_2 = {
    datasets: [{
        data: //print php var here,
        backgroundColor: [
            '#00c0ef',
            '#f56954',
            '#00a65a',
        ],
    }],
};

I want to change my array format from something like 我想从类似的东西改变我的数组格式

Array ( [jml] => 833 ) Array ( [jml] => 6 ) Array ( [jml] => 18 )) 数组([jml] => 833)数组([jml] => 6)数组([jml] => 18))

to [833, 6, 18] [833, 6, 18]

My questions are how to print my php variable inside javascript and how to change php's array style to javascript's array style. 我的问题是如何在javascript中打印我的php变量,以及如何将php的数组样式更改为javascript的数组样式。 Thanks 谢谢

json_encode() is well suited for injecting data into JavaScript: json_encode()非常适合将数据注入JavaScript:

<?php
$data = [["jml"=>833], ["jml"=>6], ["jml"=>18]];
$arr = array_column($data, "jml");
$var = json_encode($arr);
?>

<script>
var data_2 = {
    datasets: [{
        data: <?= $var ?>,
        backgroundColor: [
            '#00c0ef',
            '#f56954',
            '#00a65a',
        ],
    }],
};
</script>

In php part: 在php部分:

<?php
$dataArr = Array ( Array ( 'jml' => 833 ), Array ( 'jml' => 6 ), Array ( 'jml' => 18 ));

$chartData = '';
foreach($dataArr as $data){
    $chartData .= $data['jml'].',';
}

$chart = '['.rtrim($chartData,',').']';
?>

Then change in your script to: 然后将脚本更改为:

var data_2 = {
    datasets: [{
        data: <?php  echo $chart; ?>,
        backgroundColor: [
            '#00c0ef',
            '#f56954',
            '#00a65a',
        ],
    }],
};

Simple way 简单的方法
I had already tired this way,its working.See this link but,I have use laravel Recurring events in FullCalendar with Laravel 我已经厌倦了这种方式,无法正常工作。请参阅此链接,但是,我在Laravel中使用Laravel在FullCalendar中重复发生事件

var data_2 = {
    datasets: [{
        data: [<?php echo $var[0],$var[1],$var[2] ?>],
        backgroundColor: [
            '#00c0ef',
            '#f56954',
            '#00a65a',
        ],
    }],
};

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM