2011-10-10 39 views
0

我正在使用Highchart API来显示图表。有很多图表类型可以显示,这个想法是让用户从下拉列表中选择一个图表,创建一个ajax请求并部分更新图表。好的是我可以输出自定义响应,自定义图表选项,布局和数据。Ajax模式更新JavaScript图表数据?

这里的问题是图表布局和数据位于headscript标记内。然后由API填充空的div

我应该使用哪种模式来部分更新图表?对不起这个问题,但我在处理一些不同于更新div与纯文本/ html作为服务器响应时感到有点困惑。

回答

0

答案我自己:使chart成为全局JavaScript变量,初始化图表选项(不是必需的)发送ajax请求并返回代表整个图表对象的JSON对象,覆盖全局的chart。无需拨打redraw局限性:由于无法序列化函数,因此无法动态覆盖格式化函数(例如,用于工具提示)。

如果您只是想更新数据呼叫addSeries,setSize,setTitle(及其他)的方法。

所有解释得很好here(第4节)和here

0

我工作有点与hightchart,我正在做什么来改变图表的类型是调用一个函数,去一个PHP AJAX源和创建一个表的数据库结果的图表。

每个图表都需要一个不同的表格布局,我想。

这就是为什么我为此创建分离文件。

,如:

piechart.ajax.php 

和一个div获得Ajax调用的返回,之后,我打电话Highcharts显示的结果的成图股利。

不知道这是否会帮助你,但可以明确的 '头脑'

编辑:

HTML:

<div id="grafic"></div> 

JS:

$.post("ajax/piechart.ajax.php", 
      { 
       cache: false, 
      }, 
      function(data){ 

       $("#grafic").html(data); 

       var table = document.getElementById('datatable'), 
        options = { 
         chart: { 
          renderTo: 'grafic', 
          zoomType: 'xy', 
          defaultSeriesType: 'pie' 
         } 
        }; 
        Highcharts.visualize(table, options); 
      } 
    ) 
+0

'piechart.ajax.php'的输出是什么,以及“将div的结果显示在图表中”是什么意思?该div只是一个由Highcharts填充的空元素... – gremo

+0

我从表中提取结果,piechart.ajax.php的源代码是一个html表格,并且将ajax(data)的返回值放入div中,就像$( “#DIV”)HTML(数据)。我使用#div的来源来创建图表。 –

+0

检查更新 –