繁体   English   中英

在表单提交时更新Google Charts数据

[英]Updating Google Charts data on form submit

我有一个Rails应用,其中Google图表图形从外部服务器收集用户数据。 用户模型中有一种方法可从服务器获取此数据,在users#show controller方法中称为该方法。

show方法返回默认的JSON,然后我使用users_helper方法进行解析。 这些返回一个JSON格式的字符串(不是JSON对象)供Google图表使用。

我添加了一些功能,以便能够为数据选择日期从和日期到。 这是我的表格(在HAML中):

= form_tag({:controller=>"manage/users", :action=>"show"}, :id => "datesform", method: :get, remote: true) do
  = text_field_tag :date_from, "", data: {behaviour: "datepicker"}, placeholder: "Date from", :id => "date_from_box"
  = text_field_tag :date_to, "", data: {behaviour: "datepicker"}, placeholder: "Date to", :id => "date_to_box"
  = submit_tag ("Search"), :id => 'chart_submit_dates'

当前,默认时间跨度为两个月(仅当date_from / date_to参数为空时才会发生)。 在查看时,这有效。 图形获得正确的数据,所有内容都呈现出来。

但是,提交表单不会更改数据,除非我从表单中删除remote: true属性。 当我这样做时,整个页面都会刷新,但是将使用表单中指定的正确数据时间范围来生成图形。

我想要实现的是在页面中更新图形数据,然后在提交表单时调用图形的重新渲染。 对于AJAX来说,这听起来像是一个完美的案例,但是我尝试过的一切都没有用(尽管我对AJAX和javascript完全陌生,所以大部分都是从在线内容中剪切和粘贴的)

修复。 有这个问题的其他人:

我必须为图表创建一个show.js文件和show.html文件。 在那个js中,我重新填充了图形数据,从数据中重新创建了表格,并使用该表重新绘制了图形。 在“用户”控制器中,我放入了一个response_to块,在其中指示了format.html和format.js。 完成此操作后,一切正常。 无需刷新,图表在日期字段上单击“提交”后,便使用新数据重新绘制了自己。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM