Php Laravel,在ajax发布后更新字段

Php Laravel,在ajax发布后更新字段,php,ajax,laravel,Php,Ajax,Laravel,我正在制作一个小型的系统。我已经成功地在我的数据库中发布了一篇ajax文章,在那里我用行增加了tblarticles。现在,在我撰写ajax文章的同一页上,我想在每次ajax文章之后更新字段的值。现在我的问题是,在看到1而不是标准的0之前,我需要刷新 阿贾克斯邮报 $.ajax({ url:"articles" , type: "post", data: { 'user_id':userid[0].value, 'article_id':a

我正在制作一个小型的系统。我已经成功地在我的数据库中发布了一篇ajax文章,在那里我用
行增加了tblarticles。现在,在我撰写ajax文章的同一页上,我想在每次ajax文章之后更新字段的值。现在我的问题是,在看到1而不是标准的0之前,我需要刷新

阿贾克斯邮报

$.ajax({
    url:"articles" ,
    type: "post",
    data: {
        'user_id':userid[0].value,
        'article_id':articleid[0].value,
        'user_id_fk':useridarticle[0].value,
        '_token': token[0].value
    },
    success: function(data){
        console.log(data);
    }
});
查看
article/index.blade.php

@foreach($articles as $article)

          <div class="work-container">
              <article class="work-item">
                  <a href="{{action('HomeController@showArticle', [$article->id, $article->title])}}" class="work-thumbnail">
                      <img src="/articlePics/{{$article->image}}" alt="work-item">
                  </a>
                  <div class="work-info">
                      <span class="user">{{$article->title}}</span>
                      <div class="actions">
                          <form id="actionForm" action="" method="post" role="form">
                              <input type="hidden" name="articleId" value="{{$article->id}}">
                              <input type="hidden" name="userIdFk" value="{{$article->user_id}}">
                              <input type="hidden" name="userID" value="{{Auth::id()}}">
                              <input type="submit" name="like" class="likeBtn" id="test" value="Like">
                              <input type="hidden" name="_token" value="<?php echo csrf_token(); ?>">
                          </form>
                          <span class="likes" name="currentLikes">{{$article->likes}}</span>
                      </div>

                  </div>
              </article>
          </div>
      @endforeach

这是我希望在ajax发布后使用当前发布的数据更改的最后一个跨度。

在控制器中,在执行requires任务后,启动查询以获取计数

然后在
json\u encode()
中回显

在ajax
success()
中,您可以使用解析数据并在任何需要的地方添加数据

如果只想获取一个值,则不需要
json\u encode()

直接回显值并在ajax中使用
success()
尝试:

文章
中,用
json\u encode
回显相似的数字

$currentLikesDB = DB::table('likes')->where('article_id', $article_id)->first();
$likesnumber = $currentLikesDB->likes;
return json_encode(['likesnumber' => $likesnumber]);
然后,ajax:

$.ajax({
    url:"articles" ,
    type: "post",
    data: {
        'user_id':userid[0].value,
        'article_id':articleid[0].value,
        'user_id_fk':useridarticle[0].value,
        '_token': token[0].value
    },
    success: function(data){
        $('.likes').html(data.likesnumber);
    }
});

在ajax请求中,将总计数作为JSON返回,并在ajax的成功函数中编写

success: function(data){
$('.likes').html(data.likesCount);
    }

likesnumber无法识别,这是我在控制器$currentLikesDB=DB::table('likes')->where('article_id',$article_id)->pull('likes')中添加的内容;echo json_encode(['likesnumber'=>$currentLikesDB]);还是一样。。。它在我的编辑器中给出了一个未解析的变量,比如numberpleconsole成功后记录数据:console.log(data);您得到了什么?POST 500(内部服务器错误),并在网络选项卡上调用未定义的方法stdClass::pull()得到了它。我的数据已经是一个对象。不需要解析它。javascript解释器已经为我解析了它!非常感谢您,您需要传递
counted currentLikes
的编码值,然后只需在
success:function(data)
中,您就可以像
$('.likes').text('data.name\u of_field\u you passed')一样访问它。
不要只是从控制器返回。你需要设置你的标题。在Laravel中,正确的方法是
返回响应::json(['likesnumber'=>$currentLikesDB])调用未定义的方法\Http\Response::json()
success: function(data){
$('.likes').html(data.likesCount);
    }