使用Ajax更新多个表行

时间:2012-04-09 15:24:35

标签: ruby-on-rails ajax ruby-on-rails-3

我在视图中有一个非唯一ID的表。我在其中一列中有一个启用了Ajax的提交按钮,我希望Ajax结果更新表中与id匹配的所有行。反正有吗?我只能让它更新第一次出现的身份。
谢谢你的帮助!

以下是相关代码;

我视图中的表格代码;

<% @gifts.each do |gift| %>

<tr id="<%= gift.parent_id %>">
  <% if gift.key_indicator == "Individual" %>
    <td><%= gift.first_name %> <%= gift.last_name %></td>
  <% else %>
    <td><%= gift.organization_name %></td>
  <% end %>
  <td><%= l gift.gift_date.to_date, :format => :default %></td>
  <td><%= number_to_currency(gift.fund_split_amount) %></td>
  <td><%= if gift.fund_id =~ /\A[Xx]/ then :CND else :US end%></td>
  <td><%= gift.preferred_primary_email_number %></td>
  <td><% if @subscriber_ids.include?(gift.constituent_id) %>
        Yes
      <% else %>
        <%= form_for(@teacher.mailing_list_edits.build(:parent_id => gift.parent_id),remote: true) do |f| %>
            <div><%= f.hidden_field :parent_id %></div>
        <%= f.submit "Add", :class => "btn btn-large btn-primary" %>
        <% end %>
    <% end %>
  </td>
 </tr>
 <% end %>

这是我的create.js.erb

$('#<%= params[:mailing_list_edit][:parent_id] %>').html("foobar")

1 个答案:

答案 0 :(得分:1)

继续并转到

<tr id="<%= gift.parent_id %>" class="gift_<%= gift.parent_id %>">

然后在你的create.js.erb:

$('.gift_<%= params[:mailing_list_edit][:parent_id] %>').html("foobar")

通过这种方式,您可以访问多个元素(通过使用类),并轻松替换它们。