Ruby如何从HTML表单获得2D阵列



我正在尝试编写门票预订系统。
我有一个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>

还将值属性添加到复选框标签

最新更新