我正在尝试重新创建信息中心,以正确了解如何使用FusionCharts。
This is the dashboard我正在复制。如果您注意到,每次浏览选项卡时,图表都会重新渲染。
在我的网站(http://sisfacil.cl/plantilla/)
中图表只会渲染一次,第一次更改为任何标签或更改任何选择输入(无论如何都会改变图表的数据)。
我希望在标签更改上实现与在信息中心中相同的重新呈现
现在我以两种方式呈现图表;
第一个是引用index.php中的.js来构建和呈现页面中的每个图表,这个图表有静态数据,所以它们是这样构建的:
var myChart = new FusionChart (
//structure and static data here*
).render();
第二个是通过Ajax将参数发送到另一个.php,它从我之后的jsonEncode的MySQL数据库中检索数据,这些数据在上面调用的.js中。这可以更改图表的选择数据,如下所示:
$('#sel1sbmn2chart2').on('change', function(){
var x = this.value;
$.ajax({
url: 'includes/gastoDinamico.php',
type: 'POST',
data: {selYear: x},
success: function(data){
myChart.setChartData(data, "json");
}
});
});
此外,我还使用jquery附加了onClick事件,以重新呈现Presupuestos / Ventas选项卡中页面上的第一个图表。完成上面代码的方式相同。
这很难用,因为它有一些奇怪的行为再次渲染图表。有时候它会从0重新渲染图表(这意味着,我尝试复制的FusionCharts仪表板的方式相同)其他,您将看到图表呈现(在缓存中)然后重新渲染。而其他时候图表将使用其他分辨率渲染,更小(我将分辨率设置为600x400,小分辨率看起来像预设分辨率或其他)。
我已经尝试过这个问题的其他方法,比如在再次渲染之前使用.dispose()方法,但是我无法使它工作(错误:dispose()不是函数/重复的ID图表/找不到要渲染的DOM元素/ etc)
另外,在网上研究我发现每个人都有相反的问题。图表上的图表动态呈现更改..
我认为您可以在我的网页的代码中查看大部分代码,否则如果您需要任何其他特定代码,我可以编辑我的OP。
如何在制表符更改时动态呈现图表?
无法判断我做错了什么。