我正在使用amcharts(折线图)。使用ajax动态设置数据,并以JSON格式从php代码获取数据。
问题是字符串未动态更改为数组。
如果我在jquery代码中添加了这个字符串static
码
[{"country":"17 Feb","visits":"4","color":"#EA5759"},{"country":"16 Feb","visits":"1","color":"#EA5759"},{"country":"15 Feb","visits":"3","color":"#EA5759"}];
这很好。
如果我已动态设置此代码。折线图显示未定义。
我已经使用了这个功能
ajax返回代码
[{" country":" 2月17日""访问":" 4","颜色" :"#EA5759"},{"国家":" 16月","访问":" 1", "颜色":"#EA5759"},{"国家":" 2月15日","访问":& #34; 3""颜色":"#EA5759"}]
我刚刚在这个功能上传递了这个。像
var ajaxString = [{" country":" 2月17日","访问":" 4","颜色& #34;:"#EA5759"},{"国家":" 2月16日","访问":" 1&# 34;,"颜色":"#EA5759"},{"国家":" 2月15日","访问&#34 ;:" 3""颜色":"#EA5759"}];
function lineChart(data){ var chart;
var chartData=data;
// SERIAL CHART
chart = new AmCharts.AmSerialChart();
chart.dataProvider = chartData;
chart.categoryField = "country";
chart.startDuration = 1;
// AXES
// category
var categoryAxis = chart.categoryAxis;
categoryAxis.labelRotation = 45; // this line makes category values to be rotated
categoryAxis.gridPosition = "start";
// value
var valueAxis = new AmCharts.ValueAxis();
valueAxis.dashLength = 5;
// valueAxis.title = "Visitors from country";
valueAxis.axisAlpha = 0;
chart.addValueAxis(valueAxis);
// GRAPH
var graph = new AmCharts.AmGraph();
graph.valueField = "visits";
graph.colorField = "color";
graph.balloonText = "<b>[[category]]: [[value]] Users</b>";
graph.type = "column";
graph.lineAlpha = 0.2;
graph.fillAlphas = 0.9;
chart.addGraph(graph);
// CURSOR
var chartCursor = new AmCharts.ChartCursor();
chartCursor.cursorAlpha = 0;
chartCursor.zoomable = false;
chartCursor.categoryBalloonEnabled = false;
chart.addChartCursor(chartCursor);
chart.creditsPosition = "top-right";
// WRITE
chart.write("chartdiv");
}[![undefined message][1]][1]
但那不起作用。 提前谢谢
答案 0 :(得分:2)
你传递给你的函数的ajaxString只是一个字符串,而不是一个json对象,所以你的函数lineChart可能期望的是json对象,所以尝试将ajaxString转换为有效的json对象,然后再将它发送到你的函数
JSON.parse(ajaxString);
答案 1 :(得分:1)
这似乎是您尝试将JSON 字符串设置为chartdata
而不是javascript 对象数组。
在这种情况下,您应该尝试解析通过ajax调用获取的字符串,如下所示:JSON.parse(dataelement)
,然后再将其设置为chartdata
。
答案 2 :(得分:-1)
您可以在PHP中动态创建代码,并通过json_encode转换json中的数组。 编码的json稍后可以在jquery中使用。