2010-06-14 55 views
0

因此,我有一个页面设置为通过POST请求使用Google Chart API。我有多个图表来绘制每个提交按钮,以便用户可以查看他们想要的任何图表。所以它在按下提交会加载图表的地方工作,但我想改进它。通过POST请求将谷歌图表加载到页面

理想情况下,我想要一种方式(提交按钮或链接)用JavaScript提交表单,但返回结果并将图像动态添加到页面。我真的不知道是否有可能像用JavaScript处理表单,将数据传递给Google并在不离开当前页面的情况下返回图像。我可以吗?

我不能使用GET(这会更容易),因为我可能达到了数据限制。此外,我这样做的方式更容易,可以将这些表单生成为单个HTML页面(而不是多个页面并使用可以完成我想要的内容的iframe)。

这是我的页面与一些图表的片段。只是一个例子。

<tr class="chart-row"> 
    <td colspan="2"> 
     <form action="http://chart.apis.google.com/chart" method="POST" id="chartForm-idtestcasex2x32time"> 
     <input type="hidden" name="cht" value="lc"> 
     <input type="hidden" name="chs" value="800x375"> 
     <input type="hidden" name="chtt" value="Performance Graph for SingleFrameNotNullSurface Time"> 
     <input type="hidden" name="chts" value="FFFFFF,24"> 
     <input type="hidden" name="chco" value="000000"> 
     <input type="hidden" name="chls" value="2"> 
     <input type="hidden" name="chm" value="o,006A71,0,-1,4"> 
     <input type="hidden" name="chma" value="15,15,15,15"> 
     <input type="hidden" name="chf" value="bg,s,006A71|c,s,CCDDDD"> 
     <input type="hidden" name="chd" value="t:0.208,0.133"> 
     <input type="hidden" name="chds" value="0.12,0.22"> 
     <input type="hidden" name="chg" value="100,10"> 
     <input type="hidden" name="chxt" value="x,x,y,y"> 
     <input type="hidden" name="chxr" value="2,0.12,0.22,0.01"> 
     <input type="hidden" name="chxl" value="0:|140|143|1:|Build Number|3:|Time (ms)"> 
     <input type="hidden" name="chxp" value="1,50|3,50"> 
     <input type="hidden" name="chxs" value="0,FFFFFF|1,FFFFFF,16|2N*f5*,FFFFFF|3,FFFFFF,16"> 
     <input type="submit" value="Show Time Graph"> 
     </form> 
    </td> 
    <td colspan="2"> 
     <form action="http://chart.apis.google.com/chart" method="POST" id="chartForm-idtestcasex2x32fps"> 
     <input type="hidden" name="cht" value="lc"> 
     <input type="hidden" name="chs" value="800x375"> 
     <input type="hidden" name="chtt" value="Performance Graph for SingleFrameNotNullSurface Time"> 
     <input type="hidden" name="chts" value="FFFFFF,24"> 
     <input type="hidden" name="chco" value="000000"> 
     <input type="hidden" name="chls" value="2"> 
     <input type="hidden" name="chm" value="o,006A71,0,-1,4"> 
     <input type="hidden" name="chma" value="15,15,15,15"> 
     <input type="hidden" name="chf" value="bg,s,006A71|c,s,CCDDDD"> 
     <input type="hidden" name="chd" value="t:0,0"> 
     <input type="hidden" name="chds" value="-1,1"> 
     <input type="hidden" name="chg" value="100,25"> 
     <input type="hidden" name="chxt" value="x,x,y,y"> 
     <input type="hidden" name="chxr" value="2,-1,1,0.5"> 
     <input type="hidden" name="chxl" value="0:|140|143|1:|Build Number|3:|Average FPS"> 
     <input type="hidden" name="chxp" value="1,50|3,50"> 
     <input type="hidden" name="chxs" value="0,FFFFFF|1,FFFFFF,16|2N*f5*,FFFFFF|3,FFFFFF,16"> 
     <input type="submit" value="Show FPS Graph"> 
     </form> 
    </td> 
</tr> 
+0

现在我已经切换到Flot和jQuery。祝好运,如果有人有类似的问题。 – Matt 2010-06-15 20:45:45

回答

0

您可以将参数附加到url并使用javascript将其加载为图像。

我知道你说你可能达到了获取请求的限制,但这里有一段摘录:http://code.google.com/apis/chart/docs/making_charts.html可能对你有帮助。

谷歌图的使用政策

有没有限制通话每一天,你可以对谷歌图表API的数量。但是,我们保留阻止我们视为滥用的任何用途的权利。如果您认为您的服务将使每天有超过250,000次API调用,请通过邮寄估算至[email protected]告知我们。

+0

没错,但我预计大约有150个数据点会开始触及GET的2k数据限制,我宁愿在这个阶段安全地使用它。尽管如此,我并不担心过多的请求。 – Matt 2010-06-14 16:31:00