2012-04-09 92 views
0

我有一个非唯一ID的视图中的表。我在其中一列中有一个启用了Ajax的提交按钮,我希望Ajax结果能够更新表中与id匹配的所有行。无论如何要这样做?我只能得到它来更新id的第一次出现。
感谢您的帮助!使用Ajax更新多个表行

这里是相关的代码;

表中的代码在我看来;

<% @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") 
+0

当然这是可行的,但它高度依赖于你的dom结构。 – apneadiving 2012-04-09 15:27:40

+0

显示一些代码! – 2012-04-09 15:30:26

+1

我的印象是,DOM元素ID应该是唯一的,而且有人用类来指定元素组? – MrTheWalrus 2012-04-09 15:57:55

回答

1

来吧,改变

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

然后在您的create.js.erb:

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

这样你就可以访问多个元素(通过使用类),一个d很容易替换它们。

+0

这个伎俩!谢谢! – SteveO7 2012-04-09 23:12:19