2009-09-02 7 views
2

私はAJAXリクエストでjavascript変数を更新する必要があるFusionChartsのプロジェクトに取り組んでいます。 FusionChartは、下に示すようにchart1.setDataXML()タグ内のxmlで自身を設定します。AJAXを使ってJavascript変数を更新する

<div id="barGraph"> 
     Bar Graph 
    </div> 
    <script language="JavaScript"> 
     var chart1= new FusionCharts("/charts/Column3D.swf", "barGraph", "600", "400", "0", "1"); 
     chart1.setDataXML("<chart caption='Monthly Unit Sales' xAxisName='Month' yAxisName='Units' showValues='0' decimals='0' formatNumberScale='0'><set label='Jan' value='462'/><set label='Feb' value='857'/><set label='Mar' value='671'/><set label='Apr' value='494'/><set label='May' value='761'/><set label='Jun' value='960'/><set label='Jul' value='629'/><set label='Aug' value='622'/><set label='Sep' value='376'/><set label='Oct' value='494'/><set label='Nov' value='760'/><set label='Dec' value='960'/></chart>"); 
     chart1.render("barGraph"); 
    </script> 

私が言ったように、私はそのスクリプト内のXMLをAJAXリクエストで更新する必要があります。ここに私の関数は

<script type="text/javascript"> 
    function updateChart(domId){ 
     var response= "<chart></chart>" 
     var chartObj = getChartFromId("barGraph"); 
     chartObj.setDataXML(response); 
    } 
    </script> 

だ...私は、チャートを更新機能を作成しましたが、私は遊びにAJAXを持参する方法を見つけ出すことはできません私は私のAJAX要求が「応答を更新することができます方法はあります'変数?

答えて

2

何か:

new Ajax.Request('/your_remote_script.php', { 
    method: 'get', 
    onSuccess: function(transport) { 
    var your_var = transport.responseText; 
    updateChart(your_var); 
    } 
}); 
+0

おかげで、それをやりました。 – ryan

0

はい。単にXMLHttpRequestオブジェクトを使用して要求を送信し、XMLHttpRequest.responseを独自の応答変数に読み込みます。これを行う方法について

A非常に良いチュートリアル: http://www.w3schools.com/Ajax/Default.Asp

1

私はあなたがAJAX呼び出しを行う、またはコントローラから、それに応答して助けが必要なのかはわからないが、私はコントローラを説明するつもりです側。コントローラで

はアクションを行います。

def update_chart 
    new_something = params[:sent_value] 
    render :update do |page| 
    page.call 'updateChart', new_something 
    end 
end 

はレンダリング:アップデートには、ページ上で実行されますJavaScriptを返します。

page.callは、最初の引数で指定された関数を実行し、引数の残りの部分をjavascript関数の引数として.callに渡します。以下のような

関連する問題