Also jQuery documentation for ajax method can be found here 
- http://api.jquery.com/jquery.ajax/

On Tuesday, February 16, 2016 at 1:11:58 PM UTC-8, Rob Lane wrote:
>
> Your using a $.ajax call but not handling the response in any way.  It 
> also seems that the data for your charts is being driven by instance 
> variables from the controller.  This means that the data is set for the 
> chart once, when the page is rendered and then never again.
>
> I think what you want to do here is have your front-end charts populated 
> through an ajax call, wrapped in a method.  This same method is used when 
> you need to refresh the data on the page.  Essentially the HTML is rendered 
> to give you the page structure and populate this with data using the ajax 
> call, as opposed to using iVars from the controller.  Take a look at the 
> jQuery documentation to get an idea on how to handle the ajax response. 
>  You will want to write handler code for error responses as well to improve 
> your debugging experience.
>
> Does this make sense/help you out?  If not I can toss a small example of 
> what I'm talking about here.
>
> On Monday, February 15, 2016 at 11:50:47 AM UTC-8, Ruby-Forum.com User 
> wrote:
>>
>> I have a chart page with 12 charts on it. Each chart is in a self 
>> contained partial. Each chart is a different group of data however the 
>> common filter is a date range which I pass into the partial. 
>>
>> I implemented a jQRangeSlider to select the date range and pass that to 
>> the controller which in turn re-renders the page. 
>>
>> I can't seem to get the charts to refresh showing the new data. I can 
>> see in the terminal window the queries being called and they have the 
>> right date however the chart is not refreshing. 
>>
>> HELP !!! 
>>
>> John 
>>
>> Part of the Controller 
>> ------------------- 
>> class ChartsController < ApplicationController 
>>   def charts 
>>     if params.has_key?(:startdate) 
>>       @startdate = params[:startdate] 
>>       @enddate = params[:enddate] 
>>     end 
>>     @displaystartdate = @startdate.to_date.strftime("%m/%d/%Y") 
>>     @displayenddate = @enddate.to_date.strftime("%m/%d/%Y") 
>>     respond_to do |format| 
>>       format.html 
>>       format.js 
>>     end 
>>   end 
>> end 
>>
>> Primary Chart View 
>> ---------------------- 
>> <br /> 
>> <div id="slider"></div> 
>> <br /> 
>> <script> 
>>   function pad2(number) { 
>>        return (number < 10 ? '0' : '') + number 
>>   }; 
>>
>>   function datachanged(displaystart,displayend) { 
>>     $("#date_display h2").text('Dates from '+displaystart+' to 
>> '+displayend); 
>>   }; 
>>
>>   $("#slider").dateRangeSlider({ 
>>     arrows: false, 
>>     bounds:{ 
>>       min: <%= first_training_jq %>, 
>>       max: <%= last_training_jq %> 
>>     }, 
>>     defaultValues:{ 
>>       min: <%= date_to_jq_date(@startdate) %>, 
>>       max: <%= date_to_jq_date(@enddate) %> 
>>     }, 
>>     }); 
>>
>>   $("#slider").bind("userValuesChanged", function(e, data){ 
>>     var startdate = data.values.min; 
>>     var enddate = data.values.max; 
>>     var displaystart = 
>> pad2(startdate.getMonth()+1)+'/'+pad2(startdate.getDate())+'/'+startdate.getFullYear();
>>  
>>
>>     var displayend = 
>> pad2(enddate.getMonth()+1)+'/'+pad2(enddate.getDate())+'/'+enddate.getFullYear();;
>>  
>>
>>
>>     var 
>> newstartdate=startdate.getFullYear()+'-'+pad2(startdate.getMonth()+1)+'-'+pad2(startdate.getDate());
>>  
>>
>>     var 
>> newenddate=enddate.getFullYear()+'-'+pad2(enddate.getMonth()+1)+'-'+pad2(enddate.getDate());
>>  
>>
>>
>>     $("#date_display h2").text('Dates from '+displaystart+' to 
>> '+displayend); 
>>
>>     $.ajax({ 
>>           url: "/charts", 
>>           type: 'POST', 
>>           data: { startdate: newstartdate, enddate : newenddate}, 
>>           cache: false, 
>>           dataType: 'json' 
>>       }); 
>>   }); 
>>
>> </script> 
>>
>> <div class="navigation"> 
>>   <table> 
>>     <tr> 
>>       <td><%= link_to 'Back to Main Menu', :controller => 'home', 
>> :action => 'menu' %></td> 
>>     </tr> 
>>   </table> 
>>   <br> 
>> </div> 
>>
>> <div id="date_display" align="center"><h2>Dates from <%= 
>> @displaystartdate %> to <%= @displayenddate %></h2></div> 
>>
>> <div id="chart_list" align="center"><table> 
>>   <tr> 
>>     <td> 
>>       <%= render partial: 'chart8', :locals => {:startdate => 
>> @startdate, :enddate => @enddate} %> 
>>     </td> 
>>   </tr> 
>> </div> 
>>
>> And finally _chart8 partial 
>> ----------------------- 
>> <script type="text/javascript" charset="utf-8"> 
>>   $(function() { 
>>     new Highcharts.Chart({ 
>>       chart: { 
>>         defaultSeriesType: "column", 
>>         type: "column", 
>>         renderTo: "charts8" 
>>       }, 
>>       title: { 
>>         text: "Test/Test" 
>>       }, 
>>       xAxis: { 
>>         type: 'category', 
>>         labels: { 
>>             rotation: -45, 
>>             style: { 
>>                 fontSize: '13px', 
>>                 fontFamily: 'Verdana, sans-serif' 
>>             } 
>>         } 
>>       }, 
>>
>>       yAxis: { 
>>         title: { 
>>           text: "Counts" 
>>         } 
>>       }, 
>>       tooltip: { 
>>         pointFormat: '<tr><td 
>> style="color:{series.color};padding:0">{series.name}: </td>' + 
>>             '<td style="padding:0"><b>{point.y}</b></td></tr>', 
>>       }, 
>>     legend: { 
>>       enabled: false 
>>       }, 
>>       series: [{ 
>>         name: "Counts", 
>>         data: <%= raw test_count_by_initiative(startdate, enddate) 
>> %> 
>>       }], 
>>     dataLabels: { 
>>         enabled: true, 
>>         rotation: -90, 
>>         color: '#FFFFFF', 
>>         align: 'right', 
>>         format: '{point.y:.1f}', // one decimal 
>>         y: 10, // 10 pixels down from the top 
>>         style: { 
>>             fontSize: '13px', 
>>             fontFamily: 'Verdana, sans-serif' 
>>         } 
>>     } 
>>     }); 
>>   }); 
>> </script> 
>> <div id="charts8"></div> 
>>
>> -- 
>> Posted via http://www.ruby-forum.com/. 
>>
>

-- 
You received this message because you are subscribed to the Google Groups "Ruby 
on Rails: Talk" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/rubyonrails-talk/13de3a95-56a8-479a-bd71-8f989a9e0db7%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to