2012-02-25 24 views
0

私は最近、ユーザーが投稿の投票ボタンをクリックするたびに、投票数の多い投票システムを作成しました。同時に、投票数を追跡するカウンター製。投票ボタンはHTMLのその部分のみをリフレッシュし、ページ全体を更新せずに投票集計番号を更新しますが、ページ全体がリフレッシュされない限り、投票額のカウンターは変更されません。投票ボタンをクリックしたときに、その部分のみリフレッシュするようにするにはどうすればよいですか?どこから始めるべきかわからない。ありがとうございました!投票量Rails:部分的な更新ボタンのクリック

<li class='fst'><a class='ProfileLikes' href="/"><%[email protected]_count(:up) %><span class='ProfileStatText'>Likes</span></a></li> 

Vote_up.Jsに投票

<div class='Counter'> 
<span class='CounterNum'><span id='<%= micropost.id%>'><%=micropost.votes_for %></span></span> 
<div class='<%=micropost.id %>'> 
<a href="/microposts/<%=micropost.id %>/vote_up" data-remote='true' class='CounterButton b2'> 
<span id="CounterIcon" class="<%=micropost.id%>"></span> 
</a> 
</div> 
</div> 

HTML用

HTML

$("#<%[email protected]%>").html('<%="#{@micropost.votes_for}"%>'); 
$(".<%[email protected]%>").html('<a href="/microposts/<%[email protected]%>/unvote" data-remote="true" class="SquekCounterButton b3 <%[email protected]%>"><span id="SquekCounterIcon" class="<%[email protected]%>"></span></a>'); 
+0

をだから、あなたはそれが1のために働いていると述べましたすでに一部?これまでのjavascriptを表示してください。 –

+0

@BenLee上記に追加しました – Kellogs

+0

なぜAJAXリクエストを作成し、必要なデータポイントのデータ要素を含むJSONデータを取得してみませんか? 2つの異なる場所のテキストのみを更新する場合は、ページのセクション全体を再描画する必要はありません。 –

答えて

1

jQueryのAP I AJAX要求はここで見ることができるためガイド:私はあなたにいくつかのコードをあなたが始めるためにあげるような情報がたくさんありますhttp://api.jquery.com/jQuery.ajax/

$(document).ready(function(){ 
     $('a.CounterButton').click(function(event){ 
      event.preventDefault(); //This will prevent the link from navigating 

      $.ajax({ 
       url: $(this).attr('href'), //This pulls the URL from the HREF of the link 
       dataType: 'json', //This tells the AJAX request we're expecting JSON 
       success: function(response){ 
        console.log(response); //Output the response to console 
        //Maybe something like: 
        $('#' + response.ID).text(response.Likes); 
       }, 
       error: function(jqXHR, textStatus, errorThrown){ 
        alert('An error occured!'); 
       } 
      )}; 
     }); 
}); 
関連する問題