2012-04-09 14 views
0

ユニークでないIDを持つビュー内にテーブルがあります。私は、列の1つにAjax対応の送信ボタンを設定しました。このIDに一致するテーブル内のすべての行をAjaxの結果に更新したいと思います。それをどうにかしていますか?私は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

+0

コードを表示してください! –

+1

DOM要素のIDが一意であると思われていて、クラスを使用して要素のグループを指定していたという印象を受けましたか? – MrTheWalrus

答えて

1

先に行くと、あなたのcreate.js.erbに続いて

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

に変更します。

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

をそうすることで、(クラスを使用して)複数の要素にアクセスしたり、 dそれらをすべて簡単に置き換えます。

+0

それはトリックでした!ありがとう! – SteveO7

関連する問題