2017-04-18 54 views
-3

我在努力寫一個訂票系統。
我已經存儲了座椅和狀態
Ruby如何從HTML表單獲取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

+2

請在這裏發表的代碼,而不是圖片。 – Pavan

回答

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> 

而且增加值屬性複選框標籤