2016-07-05 67 views
0

我想爲使用Jquery Ajax的feed實現類似的按鈕。在feed-page.html中。代碼的工作原理是讓用戶喜歡或不同於feed,但我怎麼能讓<p id='count'>重新加載點擊按鈕Like? 感謝您的幫助提前如何使Ajax成功更改變量

<p>{{feed_detail.text|linebreaks}} </p> 
      <p id='count'> {{feed_detail.total_likes}} concern{{feed_detail.total_likes|pluralize:'s'}}</p> 
      <p> {{feed_detail.pub_date|naturaltime|capfirst}} </p> 
        <input type="button" id="like" name="{{feed_detail.slug}}" value="Like" /> 
<script> 
$('#like').click(function(){ 

     $.ajax({ 

       type: "POST", 
       url: "{% url 'like' %}", 
       data: {'slug': '{{feed_detail.slug}}' , 'csrfmiddlewaretoken': '{{ csrf_token }}'}, 
       dataType: "json", 
      }); 
    }) 
</script> 
+0

你應該在ajax的成功塊中做到這一點 – Cyril

回答

0

嘗試這樣的事情,改變輸入鍵入複選框

<p id='count'><span>{{feed_detail.total_likes}}</span> concern{{feed_detail.total_likes|pluralize:'s'}}</p> 
<input type="checkbox" id="like" name="{{feed_detail.slug}}" value="Like" /> 
    $('#like').click(function(){ 
     var el = $(this); 
      $.ajax({ 

        type: "POST", 
        url: "{% url 'like' %}", 
        data: {'slug': '{{feed_detail.slug}}' , 'csrfmiddlewaretoken': '{{ csrf_token }}'}, 
        dataType: "json", 
        success: function(data){ 
         if (el.is(':checked')) { 
         $('#count span').text(parseInt($('#count span').text())+1); 
         } else { 
         $('#count span').text(parseInt($('#count span').text())-1); 
         } 
        } 
       }); 
     }); 

演示:https://jsfiddle.net/gxup1wpo/

+0

謝謝,但這並不奏效。它的作用是點擊Like.It將1附加到文本中,例如,如果之前出現'2'關注',則'21 '另一個點擊'211'等。我想要的東西,將重新加載#counts變量{{feed_detail.total_likes}}點擊按鈕。因此它是'3的關注' – Bolaji

+0

更新我的回答 – madalinivascu

+0

這個作品除了一個頁面訪問或重新加載的問題不會顯示{{feed_detail.total_likes}}除非Like被選中然後顯示。我該怎麼辦? – Bolaji

0

我認爲你正在尋找成功的功能。

.done(function(response) { 
    alert(response); 
    console.log(response); 
}) 

並檢查您的瀏覽器中的控制檯日誌。請查看link瞭解更多信息。

0

,我發現了一個解決方案,這是非常簡單的

<p>{{feed_detail.text|linebreaks}} </p> 
      <p id='count'> {{feed_detail.total_likes}} concern{{feed_detail.total_likes|pluralize:'s'}}</p> 
      <p> {{feed_detail.pub_date|naturaltime|capfirst}} </p> 
        <input type="button" id="like" name="{{feed_detail.slug}}" value="Like" /> 
<script> 
$('#like').click(function(){ 

     $.ajax({ 

       type: "POST", 
       url: "{% url 'like' %}", 
       data: {'slug': '{{feed_detail.slug}}' , 'csrfmiddlewaretoken': '{{ csrf_token }}'}, 
       dataType: "json", success: function(){ 
         $('#count').load("{% url 'feed_detail' slug=feed_detail.slug %} #count"); 

        } 
      }); 
    }) 
</script> 

{% url 'feed_detail' slug=feed_detail.slug %}應該是URL到當前網頁,並注意使用count ID抓來獲得,特別重新加載頁面的一部分。