我有问题。我想从数据库更新我的表数据,选择值为选择框(下拉列表)。我认为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。
抱歉我的英语不好。
答案 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
您需要播放并调整它以使其适用于您的系统。但是你明白了这个想法