我有一个Rails应用程序在谷歌图表图表从外部服务器收集用户数据。用户模型中有一个用于从服务器获取此数据的方法,该方法在users#show controller方法中调用。更新谷歌图表数据提交
show
方法返回一个默认的JSON,然后我使用users_helper
方法解析出来。这些返回一个JSON格式的字符串(不是JSON对象)供Google Charts使用。
我添加功能,以便能够选择一个日期从和日期为数据。这是我的表(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 PARAMS是空的)。在查看时,这是有效的。图形获得正确的数据并呈现所有内容。
然而,提交表单无助于改变数据,除非我删除从形式remote: true
属性。当我这样做时,整个页面会刷新,但图形会在表单中指定的正确数据时间范围内生成。
我试图做到的,是在曲线数据页面内更新,然后我可以调用表单提交时一个图表的重新渲染。这听起来像AJAX一个完美的情况下,但一切我试过没有工作(虽然我是一个完整的小白到Ajax和JavaScript,因此它已经削减大多和粘贴来自网上的东西)