使用rails

时间:2016-06-16 13:26:30

标签: mysql ruby-on-rails ajax haml

我有问题。我想从数据库更新我的表数据,选择值为选择框(下拉列表)。我认为ajax是解决方案。但是我该怎么办?
这是我在视图中的选择标记。我的观点是用haml写的

%select{:name => "options", :id=>"select_other_month"}
            %option{:value => "0"} Other Months
            %option{:value => "5"} 5
            %option{:value => "4"} 4
            %option{:value => "3"} 3
            %option{:value => "2"} 2
            %option{:value => "1"} 1 

这是我的表

.table{:id=>"admin_time_table"}
        %table{:border=>"1"}
            %tr
                %th No
                %th Name
                %th Total day 
                %th Total time
            -@i = 1
            -@users.each do |u|
                %tr
                    %td=@i
                    %td=u.firstname
                    %td=u.total_day
                    %td=u.total_time
                -@i = @i +1

我的控制器看起来像

@users = User.where(:type_id=>0)

我的意思是当我在下拉列表中选择4时,表数据从数据库重新加载了4月数据。
注意:我的数据库是mysql。
抱歉我的英语不好。

1 个答案:

答案 0 :(得分:0)

1)将您的选择放入带有remote: true选项的表单中。这将使它通过ajax提交。还可以设置一个javascript侦听器,以便在每次更改时提交它。你应该看到它在此时遇到rails服务器并且出现路由错误

2)设置此操作的路线。

3)在控制器操作中,从select_other_month

中读取params

4)在视图中action.js.erb(必须是js)。做 $("#admin_time_table").html("<%= j render partial: 'table' %>")。表partial是替换为指定type_id

的数据的位置

您需要播放并调整它以使其适用于您的系统。但是你明白了这个想法