2016-07-05 35 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抓来获得,特别重新加载页面的一部分。