发送 html table 同名数据

Send html table data has same name

我的 table 显示两列,“#”和 "String"。我制作了 table,每个 td 的值都通过 text_field 显示,因此用户可以更改值并提交更改。

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

如何发送所有的 td 值?

table:

<%= 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><input value="Ende&quot;" type="text" name="skein[string_id]" id="skein_string_id"></td>

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

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

为文本字段提供唯一 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 %>

希望对你有所帮助

试试这个

<% @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 %>