• 技术文章 >web前端 >js教程

    怎么用ajax实现提交评论并自动刷新

    php中世界最好的语言php中世界最好的语言2018-03-31 15:29:36原创1605
    这次给大家带来怎么用ajax实现提交评论并自动刷新,用ajax实现提交评论并自动刷新的注意事项有哪些,下面就是实战案例,一起来看一下。

    在试了很多次了,终于搞定了,上代码吧。(我用的是jQuery的ajax,不是原生的)

    js代码:

    <script>
     $(document).ready(function () {
      getcomment();
      $('.comment-box button').click(function () {
       var comment_text = $('.comment-box textarea').val();
       $.ajax({
        type: 'POST',
        url: '/bbs/article/{{ article_list.id }}/comment/',
        data: {comment: comment_text},
        success:function (callback) {
         var data = $.parseJSON(callback);
         $('.callback').html(data.result);
         if(data.result === 'successfully') {
          getcomment();
         }
        }
       })
      });
     });
     function getcomment() {
      $.ajax({
       type: 'GET',
       url: '/bbs/article/{{ article_list.id }}/get_comment/',
       success:function (call) {
        var datas = $.parseJSON(call);
        $('.comment-list').html(datas.answer);
       }
      })
     }
    </script>

    在全文加载后调用getcomment()函数,从数据库中获取评论,自己写的评论提交后再次调用getcomment()函数,自动刷新

    html模板(用到是bootstrap模板):

     <p class="row">
       <p class="comment-list" style="margin-left: 10px">
       </p>
      </p>
      <p class="row">
     <article class="col-xs-12">
         <h4>请评论:</h4>
         <p class="comment-box">
          <textarea class="form-control" rows="3"></textarea>
          <span class="callback"></span><button type="submit" class="btn btn-success pull-right" style="max-width: 5px;">评论</button>
         </p>
     </article>
    </p>
      <hr>

    视图函数:

    @csrf_exempt
    def comment(request,article_id):
     if request.method == 'POST':
      comments = request.POST['comment']
      if len(comments) < 5:
       result = u'评论数需大于5'
       return HttpResponse(json.dumps({'result': result}))
      else:
       result = 'successfully'
       Comment.objects.create(content= comments, article_id=article_id)
       return HttpResponse(json.dumps({'result': result}))

    这是提交评论的函数,别忘记添加csrf装饰器

    def get_comment(request, article_id):
     article_list = get_object_or_404(Article, id=article_id)
     comments = article_list.comment_set.all()
     html = ''
     for i in comments:
      ele = '<p class="row"><article class="col-xs-12"><p class="pull-right"><span class="label label-default">作者:' + 'i.user' + '</span></p><p>' + i.content + '<ul class="list-inline"><li><a href="#" rel="external nofollow" ></a></li></ul></article></p><hr>'
      html += ele
     return HttpResponse(json.dumps({'answer': html}))

    后台获取评论的函数。

    最后将textarea的值清空:

    function resettext() {
     $('.form-control').val('');
    }

    相信看了本文案例你已经掌握了方法,更多精彩请关注php中文网其它相关文章!

    推荐阅读:

    Ajax+PHP制作购物车的详细教程

    如何实现AJAX的分页效果

    以上就是怎么用ajax实现提交评论并自动刷新的详细内容,更多请关注php中文网其它相关文章!

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:ajax 评论 提交
    上一篇:怎么配置谷歌浏览器支持file协议的AJAX请求 下一篇:Django Ajax如何使用
    Web大前端开发直播班

    相关文章推荐

    • JavaScript对象的构造函数和new操作符(实例详解)• Angular知识点分享:聊聊表单、管道、绑定、指令、通信和周期• 深入聊聊node.js中的EventEmitter• 一文掌握JavaScript对象• Angular项目中怎么使用 SASS 样式
    1/1

    PHP中文网