2010-10-09 27 views
0

我可以獲得一個成功的Open Flash Chart的每個視圖。 我現在試圖支持按次多個打開Flash圖表,但源代碼顯示了兩個生成的div的ID是相同的:打開Flash圖表2 - ID是相同的,所以倍數不顯示

# javascript at top of view 
<%= javascript_include_tag "swfobject.js", :cache => true %> 

# view itself 
<%= @graph.html_safe %> # html_safe is necessary for Rails 3 
<%= @graph2.html_safe %> 

# view's source code 
<div id='flashcontent_913000'></div> 
    <script type="text/javascript"> 
    swfobject.embedSWF(
    "/open-flash-chart.swf","flashcontent_913000", 
    "440", "310", "9.0.0", "expressInstall.swf", 
    {"data-file":"/analytics%2Fpie1"}, {}, {}); 
    </script> 
</div> 
<br /> 

<div id='flashcontent_913000'></div> 
    <script type="text/javascript"> 
    swfobject.embedSWF(
    "/open-flash-chart.swf","flashcontent_913000", 
    "440", "310", "9.0.0", "expressInstall.swf", 
    {"data-file":"/analytics%2Fpie2"}, {}, {}); 
    </script> 
</div> 

#controller 
respond_to do |wants| 
    wants.html { 
    @graph = ofc2(440, 310, 'analytics/pie1') 
    @graph2 = ofc2(440, 310, 'analytics/pie2') 
    } 
end 
def pie1 
... # functioning when put in the view alone 
end 
def pie2 
... # functioning when put in the view alone 
end 

由於ID相同,<%= @graph.html_safe %>試圖渲染graph2和失敗,並且graph2根本不顯示。我需要讓OFC2生成不同的ID。我怎樣才能做到這一點?

回答

0

事實證明,例如,您可以在「analytics/pie1」後面的控制器中指定一個id。通過專門指定ID,我們可以消除算法生成相同編號的機會,從而無法顯示圖像。

例如:@graph = ofc2(440, 310, 'analytics/pie1', '/', 'my_unique_div')

相關問題