【问题标题】:Update table from database using ajax in rails使用rails中的ajax从数据库更新表
【发布时间】:2016-06-16 13:26:29
【问题描述】:

我有问题。我想使用选择框(下拉菜单)的选定值更新数据库中的表数据。我认为ajax是解决方案。但是我该怎么做呢?
这是我在 VIEW 中的选择标签。我的观点是用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。
对不起我的英语不好。

【问题讨论】:

  • 您是否需要有关如何在 Rails 中使用 Ajax 的教程,或者在此代码中最好的位置?
  • 我在问如何在 Rails 中使用 Ajax
  • 那么你的问题太宽泛了——从阅读Rails guide to JS开始

标签: mysql ruby-on-rails ajax haml


【解决方案1】:

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

2) 设置此操作的路线。

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

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

您需要对其进行播放和调整以使其适用于您的系统。但你明白了

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-04-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-17
    相关资源
    最近更新 更多