我正在使用Google Charts在要构建的PHP CMS上构建一些数据库数据的图表。我可以将JavaScript代码构建到PHP中,但我希望将Javascript和PHP尽可能分开。这涉及到我在PHP中构建chart_data数组,并使用scripts.js文件中的JQuery发送和获取它。我先在数据上使用json_encode,然后再将其捕获到scripts.js文件中;但是,当它到达我的scripts.js文件时。它已经被解析回一个数组数组。而不使用JSON.parse。为什么会自动发生这种情况?而且,这是一个问题吗?
我的chart.php文件:
$chart_data = [];
$chart_row = [];
$column_text = ['Data', 'All Posts', 'Active Posts', 'Draft Posts', 'Comments', 'Unapproved Comments', 'Users', 'Subscribers', 'Categories'];
$column_count = ['Count', $post_count, $active_post_count, $draft_post_count, $comment_count, $unapproved_comments_count, $user_count, $subscribers_count, $category_count];
for ($i = 0; $i < count($column_text); $i++) {
array_push( $chart_row, $column_text[$i], $column_count[$i] );
array_push( $chart_data, $chart_row );
$chart_row = [];
}
$chart_data_json = json_encode($chart_data);
echo "<div id='chart_data' data-chart-data='{$chart_data_json}'></div>";
和我的scripts.js文件:
$(document).ready(function(){
// GOOGLE CHART FUNCTIONALITY
var chartData = $('#chart_data').data('chart-data');
google.charts.load('current', {'packages':['bar']});
google.charts.setOnLoadCallback(drawChart);
function drawChart() {
var data = google.visualization.arrayToDataTable(chartData);
var options = {
axisTitlesPosition: 'none',
chart: {
title: '',
subtitle: '',
}
};
var chart = new google.charts.Bar(document.getElementById('columnchart_material'));
chart.draw(data, google.charts.Bar.convertOptions(options));
}
});
使用此代码,一切工作正常。没有JSON.parse
开心每一天1111
相关分类