发送html表数据具有相同的名称

时间:2015-03-25 19:32:18

标签: html ruby-on-rails ruby-on-rails-4 form-for

我的表格显示两列,“#”和“字符串”。我已经使每个td的表格通过text_field显示其值,因此用户可以更改值并提交更改。

问题是如何使用表单发送所有值,因为每个td具有相同的id和名称,只发送最后一个td。

如何发送所有td值?

表格:

<%= form_for(@skein) do |s| %>
<table width="100%" class="tablesorter">
<thead>
  <tr>
  <th width="20%" data-placeholder="Search">#</th>
  <th width="80%" data-placeholder="Search">String</th>
  </tr>
</thead>
<tbody>
<% @split_order_content.zip(@split_content).each do |number, string| %>
    <tr>
      <td><%= s.text_field :string_id_bk, :value => number %></td>
      <td><%= s.text_field :string_id, :value => string %></td>
    </tr>
<% end %>     
</tbody>
</table>

<%= s.submit "Save String File", id: "commit", class: "btn btn-lg btn-primary" %>

HTML td呈现:

<td><input value="Ende&quot;" type="text" name="skein[string_id]" id="skein_string_id"></td>

注意名称和ID是如何相同的,导致数据覆盖仅发送最后数据的数据。

该表有数千条记录。我不能将每个td作为属性参数发送,参数应该是一个长数组。

2 个答案:

答案 0 :(得分:2)

试试这个

<% @split_order_content.zip(@split_content).each do |number, string| %>
<tr>
<td> <%= text_field_tag 'string_id_bk[]', number %> </td>
<td> <%= text_field_tag 'string_id []', string %> </td>
</tr>
<% end %>

答案 1 :(得分:0)

为文本字段指定唯一ID,如下所示

<% @split_order_content.zip(@split_content).each do |number, string| %>
<tr>
  <td><%= s.text_field :string_id_bk, :value => number ,:input_html => { :id => '#{s.id}'+'bk' } %></td>
  <td><%= s.text_field :string_id, :value => string ,:input_html => { :id => s.id }%></td>
</tr>
<% end %>

希望能帮到你