Javascript 用代码创建谷歌图表
我期待加载一些谷歌图表,这取决于从我的数据库中选择的数据。(图表的数量将根据选择的不同而有所不同) 我可以用下面的代码加载一个图表,但我很难通过循环列表加载多个图表 我的目的是在做出选择并将列表中每个项目的数据传递给下面的代码之前,不绘制任何图表。可能有超过20张图表 非常感谢您的帮助,我使用的是Javascript 用代码创建谷歌图表,javascript,php,charts,google-visualization,Javascript,Php,Charts,Google Visualization,我期待加载一些谷歌图表,这取决于从我的数据库中选择的数据。(图表的数量将根据选择的不同而有所不同) 我可以用下面的代码加载一个图表,但我很难通过循环列表加载多个图表 我的目的是在做出选择并将列表中每个项目的数据传递给下面的代码之前,不绘制任何图表。可能有超过20张图表 非常感谢您的帮助,我使用的是C,但仅限于php和html <html> <head> <!--Load the AJAX API--> <
C
,但仅限于php
和html
<html>
<head>
<!--Load the AJAX API-->
<script type="text/javascript" src="https://www.gstatic.com/charts/loader.js"></script>
<script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
<script type="text/javascript">
google.charts.load('current', {'packages':['corechart']});
google.charts.setOnLoadCallback(drawChart);
function drawChart() {
var jsonData = $.ajax({
url: "getJSONdata.php",
dataType: "json",
async: false
}).responseText;
var data = new google.visualization.DataTable(jsonData);
var options = {
title: 'BMU',
width: 500,
height: 300,
series: {
0: { lineWidth: 1, pointSize: 1.1 },
1: { lineWidth: 1, pointSize: 1.1},
2: { lineWidth: 1, pointSize: 1.1}},
hAxis: {
textStyle:{fontSize: 10},
format: 'HH:mm',
},
vAxis: {
textStyle:{fontSize: 10},
},
chartArea: {backgroundColor: '#fffff0'},
};
var chart = new google.visualization.ScatterChart(document.getElementById('chart_div'));
chart.draw(data, options);
}
</script>
</head>
<body>
<div id="chart_div" style="float: left; width: 500px; height: 300px;"></div>
</body>
</html>
load('current',{'packages':['corechart']});
google.charts.setOnLoadCallback(drawChart);
函数绘图图(){
var jsonData=$.ajax({
url:“getJSONdata.php”,
数据类型:“json”,
异步:false
})响应文本;
var data=新的google.visualization.DataTable(jsonData);
变量选项={
标题:“BMU”,
宽度:500,
身高:300,
系列:{
0:{lineWidth:1,pointSize:1.1},
1:{lineWidth:1,pointSize:1.1},
2:{lineWidth:1,pointSize:1.1},
哈克斯:{
文本样式:{fontSize:10},
格式:“HH:mm”,
},
言辞:{
文本样式:{fontSize:10},
},
图表区:{背景颜色:'#fffff 0'},
};
var chart=new google.visualization.ScatterChart(document.getElementById('chart_div'));
图表绘制(数据、选项);
}
您可以进行如下类似的设置
// load google charts
google.charts.load('current', {
callback: getList,
packages: ['corechart']
});
// load id list
function getList() {
$.ajax({
url: 'getList.php',
dataType: 'json'
}).done(function (listData) {
// draw chart for each id
listData.forEach(function (itemId) {
drawChart(itemId);
});
}).fail(function (jq, text, errMsg) {
console.log(text + ': ' + errMsg);
});
}
// draw id chart
function drawChart(itemId) {
$.ajax({
url: 'getJSONdata.php',
dataType: 'json',
data: {
id: itemId
}
}).done(function (jsonData) {
var data = new google.visualization.DataTable(jsonData);
var options = {
title: 'BMU',
width: 500,
height: 300,
series: {
0: { lineWidth: 1, pointSize: 1.1 },
1: { lineWidth: 1, pointSize: 1.1},
2: { lineWidth: 1, pointSize: 1.1}},
hAxis: {
textStyle:{fontSize: 10},
format: 'HH:mm',
},
vAxis: {
textStyle:{fontSize: 10},
},
chartArea: {backgroundColor: '#fffff0'},
};
// create new div for chart
var container = document.getElementById('charts').appendChild(document.createElement('div'));
var chart = new google.visualization.ScatterChart(container);
chart.draw(data, options);
}).fail(function (jq, text, errMsg) {
console.log(text + ': ' + errMsg);
});
}
您可以进行如下类似的设置
// load google charts
google.charts.load('current', {
callback: getList,
packages: ['corechart']
});
// load id list
function getList() {
$.ajax({
url: 'getList.php',
dataType: 'json'
}).done(function (listData) {
// draw chart for each id
listData.forEach(function (itemId) {
drawChart(itemId);
});
}).fail(function (jq, text, errMsg) {
console.log(text + ': ' + errMsg);
});
}
// draw id chart
function drawChart(itemId) {
$.ajax({
url: 'getJSONdata.php',
dataType: 'json',
data: {
id: itemId
}
}).done(function (jsonData) {
var data = new google.visualization.DataTable(jsonData);
var options = {
title: 'BMU',
width: 500,
height: 300,
series: {
0: { lineWidth: 1, pointSize: 1.1 },
1: { lineWidth: 1, pointSize: 1.1},
2: { lineWidth: 1, pointSize: 1.1}},
hAxis: {
textStyle:{fontSize: 10},
format: 'HH:mm',
},
vAxis: {
textStyle:{fontSize: 10},
},
chartArea: {backgroundColor: '#fffff0'},
};
// create new div for chart
var container = document.getElementById('charts').appendChild(document.createElement('div'));
var chart = new google.visualization.ScatterChart(container);
chart.draw(data, options);
}).fail(function (jq, text, errMsg) {
console.log(text + ': ' + errMsg);
});
}
看起来像是一个老例子,
async:false
已经被弃用了——您需要循环的列表在哪里?在这个阶段,我希望使用php查询数据库以获得ID列表,并将它们传递到getJSONdata.php,其中数据库调用用于图表数据。目前,getJSONdata.php是针对一个ID进行硬编码的,并且在生成一个图表的情况下可以正常工作。我想从身体部位打圈。我试着用一个按钮生成同一个图表的多个图表,但没有成功!看起来像是一个老例子,async:false
已经被弃用了——您需要循环的列表在哪里?在这个阶段,我希望使用php查询数据库以获得ID列表,并将它们传递到getJSONdata.php,其中数据库调用用于图表数据。目前,getJSONdata.php是针对一个ID进行硬编码的,并且在生成一个图表的情况下可以正常工作。我想从身体部位打圈。我试着用一个按钮生成同一个图表的多个图表,但没有成功!现在很好用。只需要在下面的调用中将值添加到parms中,现在一切正常。只需在将coal值添加到下面的调用“url='getList.php?fuel=coal”后整理一下运行代码,从一个按钮单击该url即可,但这也是data
键的作用,您可以设置数据-->数据:{fuel:'coal'}
Ok将尝试此操作,现在可以正常工作。只需在以下调用中为PARM添加值即可正常工作。只需在将coal值添加到以下调用后运行代码即可”url='getList.php?fuel=coal'从一个按钮单击该url应该可以工作,但它也是数据
键的作用,您可以设置数据-->数据:{fuel:'coal'}
确定后将尝试该操作