【问题标题】:Send html table data has same name发送html表数据同名
【发布时间】:2015-03-25 19:32:18
【问题描述】:

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

问题是如何使用表单发送所有值,因为每个 td 具有相同的 id 和 name,只发送最后一个 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>

注意 name 和 id 将如何相同,导致数据覆盖仅发送最后一个数据的数据。

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

【问题讨论】:

  • number ,:id => s.id %> 字符串,:id => s.id%>

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


【解决方案1】:

试试这个

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

【讨论】:

  • 是的,这个方法将每个 td 放入一个数组中。谢谢,加 1
  • 请去掉'string_id []'中的空格
  • 我认为它不会让编辑工作,因为它是一个字符。大声笑
【解决方案2】:

为如下所示的文本字段提供唯一的 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 %>

希望对你有帮助

【讨论】:

  • Undefined method 'id' for #<:helpers::formbuilder...> 这实际上只是答案的一半。表单将为每个值提交一个属性,我不希望这样。我想要一个属性中的值。
  • 将 :input_html 更改为 html 并检查 :html => { :id =>s.id}
  • 这行得通,id: 'blah' 。但我不能让表单为每个 td 发送一个属性值。它需要与它的列一起。所以 :string_id 发送了所有的值。不是数千。
  • 为什么要把这个逻辑放到视图里??
  • 要编辑它,我将全部显示。我希望他们能够在表格上进行编辑和保存。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-11-08
  • 1970-01-01
  • 2014-07-09
  • 1970-01-01
  • 2012-07-22
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多