我正在尝试编写门票预订系统。
我有一个2D阵列存放了座椅,状态
@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
?
如果您想更改@movie1
。@movie1
是一个红宝石变量,当页面加载时它呈现,并且在此之后无法更改。如果您真的想在没有页面重新加载的情况下更改变量,则可以通过Ajax call
Rails本身可以完成此功能来实现这一目标。
要了解更多信息,请参阅此链接:
与Rails中的JavaScript合作
还请参考RAILS PORTIAL
轨道部分
这用于创建子序列,对于这样的动态情况很有用。
作为建议,您也可以如下实现视图
<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>
还将值属性添加到复选框标签