2011-07-04 22 views
0

我有问题flot库使用其线图绘制图。我想要的是生成一个基于java的sql查询,它会给我一个值,我会把它放入我的json字符串变量中,并将它传递给javascript的数据变量。我试图做一些事情,但没有更新它。这里是我的代码:问题与动态flot图jQuery库

 <script> 
$(function(){ 
    var options = { 
       lines: { show: true }, 
       points: { show: true }, 
       xaxis: { show:false,tickDecimals: 0, tickSize: 20 } 
      }; 

      var data = []; 
      var placeholder = $("#myplace"); 

      $.plot(placeholder, data, options); 

      function update() { 
       // we get all the data in one go, if we only got partial 
       // data, we could merge it with what we already got 
      <% 
    String jsonString = "{\"label\": \"Europe (EU28)\",\"data\": [[1, 20], [20, 10], [40, 3.9], [100, 40]]}"; 
    out.flush(); 
    %>  
       data = [<%=jsonString%>]; 

       // console.log(series[0][1]); 
       $.plot($("#myplace"), data, options); 
       setTimeout(update,1000); 
      } 

      update(); 

}); 
</script> 

任何人都可以指导我该怎么做?谢谢

回答

0

您的Java代码将产生一个未分配给JavaScript变量的字符串。我删除了无用的东西,如out.flush。这是你的更新函数应该看起来如何:

function update() { 
     // we get all the data in one go, if we only got partial 
     // data, we could merge it with what we already got 
     data = <% "{\"label\": \"Europe (EU28)\",\"data\": [[1, 20], [20, 10], [40, 3.9], [100, 40]]}";%>; 
     $.plot($("#myplace"), data, options); 
} 

我也删除了setTimeout,因为它会每次产生相同的数据。如果您希望图形从服务器重复更新,您应该查看ajax请求(例如jQuery中的$ .get)。

+0

感谢您的答复,但我想实现相同的功能,而不使用任何Ajax或获得调用。 – Maverick