我的表显示了两列,"#“和"String”。我制作了每个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><input value="Ende"" type="text" name="skein[string_id]" id="skein_string_id"></td>注意名称和id是如何相同的,这导致数据覆盖数据,只发送最后一个数据。
这张桌子有数以千计的记录。我不能将每个td作为属性参数发送,参数应该是一个长数组。
发布于 2015-03-25 20:22:25
尝尝这个
<% @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 %>发布于 2015-03-25 19:47:03
为文本字段提供唯一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 %>希望这对你有帮助
https://stackoverflow.com/questions/29264867
复制相似问题