2010-06-14 81 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