我正在尝试编写门票预订系统。
我有一个二维数组存储座位和状态
@movie1 = [["A1", 0], ["A2", 0], ["A3", 1],["A4", 1], ["A5", 1], ["A6", 1], ["A7", 1], ["A8", 1], ["A9", 0], ["A10", 1]]
这是观点
<form action= "seat/test4" method="get">
<table>
<% for i in 0..9 do %>
<% if i == 0 then %>
<tr>
<% end %>
<% if @movie1[i][1] == 1 then %>
<td bgcolor="red">
<%= @movie1[i][0] %>
<input type = button value = "X"
</td>
<% else %>
<td bgcolor="green">
<%= @movie1[i][0] %>
<input type="checkbox" id= <%= @movie1[i][0] %> name = <%= @movie1[i][0] %> >
</td>
<% end %>
<% if i == 9 then %>
</tr>
<% end %>
<% end %>
</table>
<input type="submit" value="Purchase">
</form>
如何获取复选框值并更改@movie1[i][1] = 1
?
答案 0 :(得分:0)
如果您要更改@movie1
。 @movie1
是一个ruby变量,它在页面加载时呈现,之后无法更改。如果你真的想在没有页面重新加载的情况下更改变量,可以通过Ajax call
来实现.Rails本身具有实现这一目的的功能。
要了解更多信息,请参阅此链接:
Working with javascript in Rails
另请参阅rails partial
这用于创建子模板,对于像这样的动态案例非常有用。
作为建议,您还可以按如下方式实现视图
<form action= "seat/test4" method="get">
<table>
<tr>
<% @movie1.each do |m| %>
<% if m[1] == 1 %>
<td bgcolor="red">
<%= m[0] %>
<input type = button value = "X" />
</td>
<% else %>
<td bgcolor="green">
<%= m[0] %>
<input type="checkbox" id= <%= m[0] %> value="<%= m[0] %>" name = <%= m[0] %> />
</td>
<% end %>
<% end %>
</tr>
</table>
<input type="submit" value="Purchase">
</form>
还将值属性添加到复选框标记