使用php和Ajax的Highcharts柱形图
我对highcharts有一个问题,因为我无法将php数据加载到highcharts图形中,当我单击一个表单(id=year)时,它将启动。 我做了一个ajax调用,响应如下:使用php和Ajax的Highcharts柱形图,php,mysql,ajax,highcharts,Php,Mysql,Ajax,Highcharts,我对highcharts有一个问题,因为我无法将php数据加载到highcharts图形中,当我单击一个表单(id=year)时,它将启动。 我做了一个ajax调用,响应如下: “{”zone:[“NORD-OVEST”,“NORD-EST”,“CENTRO”,“SUD”,“ISOLE”,“TOTALE ITALIA”],“elementare:[71,69,59,44,44,59],“medie:[8,5,6,4,3,5],“文凭”:[3,3,3,2,2,3],“laurea:[1,0,1,1
“{”zone:[“NORD-OVEST”,“NORD-EST”,“CENTRO”,“SUD”,“ISOLE”,“TOTALE ITALIA”],“elementare:[71,69,59,44,44,59],“medie:[8,5,6,4,3,5],“文凭”:[3,3,3,2,2,3],“laurea:[1,0,1,1]。
当我必须将这些数据加载到highcharts图形时,我遇到了问题,因为ajax调用是正确的,但图形不工作。它保持黑色,右上角有图例
这是我的代码js:
function bottone1() {
$('#bottone1').click(function(){//bottone1 is my id button form
var year=$('#year').val();
if((year!='seleziona')){
$.ajax({
url: './php/grafico1.php',
data: {'year': year},
datatype: 'json',
success: function(data) {
grafo1(data);
},
error: function(data) {
alert('non funge');
}
});
};
});
};
function grafo1(){
var options = {
chart: {
renderTo: 'grafico',
type: 'column',
marginRight: 130,
marginBottom: 25
},
title: {
text: 'Titolo Di Studio',
x: -20 //center
},
subtitle: {
text: '',
x: -20
},
xAxis: {
categories: [{}]
},
yAxis: {
title: {
text: 'Percentuale'
},
plotLines: [{
value: 0,
width: 1,
color: '#808080'
}]
},
tooltip: {
formatter: function() {
return '<b>' + this.series.name + '</b><br/>' +
this.x + ': ' + this.y;
}
},
legend: {
layout: 'vertical',
align: 'right',
verticalAlign: 'top',
x: -10,
y: 100,
borderWidth: 0
},
series: [{}, {}, {}, {}]
}
$.ajax({
dataType: "json",
url: "./php/grafico1.php",
type: 'get',
data: "",
success: function(data) {
options.xAxis.categories = data.zona;
options.series[0].name = 'Licenza Elementare';
options.series[0].data = data.elementare;
options.series[1].name = 'Licenza Media';
options.series[1].data = data.medie;
options.series[2].name = 'Diploma';
options.series[2].data = data.diploma;
options.series[3].name = 'Laurea';
options.series[3].data = data.laurea;
chart = new Highcharts.Chart(options);
}
});
};
函数bottone1(){
$('#bottone1')。单击(函数(){//bottone1是我的id按钮窗体
var year=$(“#year”).val();
如果((年份='seleziona')){
$.ajax({
url:“./php/grafico1.php”,
数据:{'year':year},
数据类型:“json”,
成功:功能(数据){
grafo1(数据);
},
错误:函数(数据){
警惕(“非冯”);
}
});
};
});
};
函数grafo1(){
变量选项={
图表:{
renderTo:“grafico”,
键入:“列”,
marginRight:130,
marginBottom:25
},
标题:{
文字:“蒂托洛迪工作室”,
x:-20/中心
},
副标题:{
文本:“”,
x:-20
},
xAxis:{
类别:[{}]
},
亚克斯:{
标题:{
文本:“百分位数”
},
绘图线:[{
值:0,
宽度:1,
颜色:'#808080'
}]
},
工具提示:{
格式化程序:函数(){
返回“+this.series.name+”
+
this.x+':'+this.y;
}
},
图例:{
布局:“垂直”,
对齐:“右”,
垂直排列:“顶部”,
x:-10,
y:100,
边框宽度:0
},
系列:[{},{},{},{},{}]
}
$.ajax({
数据类型:“json”,
url:“./php/grafico1.php”,
键入:“get”,
数据:“,
成功:功能(数据){
options.xAxis.categories=data.zona;
options.series[0]。name='Licenza Elementare';
options.series[0]。data=data.elementare;
options.series[1]。名称='Licenza Media';
options.series[1]。data=data.medie;
options.series[2]。名称=‘文凭’;
options.series[2]。data=data.diplication;
options.series[3]。名称='Laurea';
options.series[3]。data=data.laurea;
图表=新的高点图表。图表(选项);
}
});
};
下面是我的图形响应:
{“区域”:[],“元素”:[],“媒介”:[],“文凭”:[],“桂冠”:[]}
我无法获取数据为什么?我在一个应用程序中使用了highcharts,该应用程序包含asp.net和json。highcharts中有多种类型的柱状图可用。您使用的是哪一个?欢迎来到Stackoverflow,您的问题有点长。更具体一点可能是明智的——您已经提供了相当多的代码。您可以通过使用例如jsfiddle.com来增加获得成功答案的机会,并缩短您发布的代码量。您进行ajax调用,在成功时调用function
grafo1
,使用一个甚至不需要的参数,只需进行另一个ajax调用,并在成功时创建图形?为什么有两个ajax调用?为什么不使用第一个数据来填充图表?非常令人困惑。json在数据中有数字吗?2.您是否收到任何错误?3.你有现场演示吗?xAxis:{categories:[{}]}和series:[[{},{},{},{},{}]你能给我发送你正在使用的图表列的名称吗。你的JSON字符串像-xAxis:{categories:[{}]}和series:[{},{},{},{},{}这是错误的。JSON字符串应该是这样的-xAxis:{categories:['a','b','c'}。在您的Json字符串类别中:[{}]是错误的。请尝试创建与highcharts.com上的示例相同的Json字符串。在系列中:[{name:'aa',data:[1,2,3]},{name:'bb',data:[4,5,6]},{name:'cc',data:[4,2,1]},}]注意数据:[int,int,int]--只需使用out quotsWith static它就可以正常工作,我的php提供json no…并尝试使用:categories:[{}]和series,以及[],但我不工作。。。