【问题标题】:erorr:Display comments through ajax (from DB) (laravel 5.2)错误:通过 ajax 显示评论(来自 DB)(laravel 5.2)
【发布时间】:2017-03-19 04:37:18
【问题描述】:

我正在开发一个评论部分(帖子上的 cmets),我可以在其中存储用户点击时的 cmets 而无需刷新页面,但无法在不刷新页面的情况下立即在该帖子上显示这些 cmets。

我的看法:

<ul id="templates" class="dropdown-menu" role="menu">


         <div class="row">
         <section class="col-md-offset-1 col-md-3 col-xs-3 "><a class="btn btn-sm" id="Nice" data-postid="{{$post->id}}">Nice!</a>
         </section></ul>




@if($storage->comment==0)
     <div class="row" id="zero">
    {{$storage->textcomment}}
    </div>
    @endif

我的脚本:

    <script>
  $(document).ready(function(){
   $('.dropdown-menu a').click(function(){
   var action=$(this).attr('id');
    var id=$(this).attr('data-postid');

    $.ajax({
    method:'POST',
    url:{{route('comment123')}},
data:{id:id,action:action}

})

    .done(function(msg) {

    $('#zero').text(msg['new_bod']);


  });
   });

  });
</script>

我的控制器:

    public function comment123(Request $request){

 $qw = storage::find($request['id']);
        $qw->textcomment = $request['action'];
        $qw->save();
        return response()->json(['new_bod' => $qw->textcomment],200);



    }

我的路线:

Route::post('/comment123' , [

    'uses' => 'PostController@comment123',
    'as' => 'comment123'


]);

【问题讨论】:

  • 如果你想显示现在添加的最新评论而不是你为什么显示来自数据库的数据
  • @DsRaj 这样当用户再次登录时,cmets 就在那里。

标签: javascript jquery ajax laravel laravel-5.2


【解决方案1】:

问题是,当您通过 ajax 发布第一条评论时,id 为“零”的 div 不会呈现到 DOM,因此当您尝试将评论添加到此 div 时,它会失败,因为 div 没有t 存在,所以基本上你有 2 个选项:

  1. 始终将 id 为“零”的 div 渲染到 DOM,因此如果数据库中有任何 cmets,您可以在页面首次加载时显示 div,然后在用户发布新评论,或者如果数据库中没有 cmets,则使用“display: none;”渲染它当用户发表新评论时,您可以将评论添加到 div 中,然后将其设为“显示:阻止”。

  2. 第二个选项 - 更好的一个 - 是,当页面首次加载时,仅当数据库上有任何 cmets 时,渲染一个 div 以附加 cmets,然后创建一个间隔函数来检查新的cmets,并附加到 cmets div 或创建此 div(如果不存在),因此当用户发布新评论时,您可以将评论的内容添加到同一个 div 中,甚至可以从 DB 中获取更多新的 cmets 以及来自的响应服务器。

我还建议您使用正确的 ajax 函数并实际检查评论是否已保存到数据库中,您可以使用“成功”和“错误”函数而不是“完成”函数来实现,所以这样您可以告诉用户保存评论时是否出错。

祝你好运!

【讨论】:

  • 感谢 Yohanan 先生的回答。 ,我明白你想说什么..但由于我是 ajax 新手,所以我不知道如何使用这些功能......请你帮忙,例如。使用附加功能等。
  • 嗨,Tnx...我一定会尝试你所说的......如果卡住了会再次联系你。
猜你喜欢
  • 1970-01-01
  • 2016-04-18
  • 1970-01-01
  • 1970-01-01
  • 2020-08-29
  • 2016-04-17
  • 1970-01-01
  • 1970-01-01
  • 2017-07-29
相关资源
最近更新 更多