单击按钮时,jQuery会自动更新视图上的值

时间:2016-11-10 07:35:43

标签: php jquery laravel

我创建了类似于数据库的当前值的按钮,当单击按钮时,必须在视图上自动更新该值。 目前,该值已在数据库上成功更新,但未在视图上自动更新。

这是我的jquery代码:

<script type="text/javascript">
    $(document).ready(function(){
        $('#like').on('click', function(e){
            var id = '{{$news->id}}';
            $.get('{{ url('view/like')}}/'+id, function(data){
                console.log(id);
                console.log(data);
                $('#like_data').empty();
                $.each(data, function(index, element){
                    $('#like_data').append("<p>"+this.like+"</p>");
                });
            });
        });
    });
</script>

这是我的控制器:

public function like($id){

    $news = News::find($id);

    $news->like += 1;
    $news->save();

    return $news;
}

2 个答案:

答案 0 :(得分:1)

您需要从控制器传递JSON响应。喜欢这个

public function like($id){

    $news = News::find($id);

    $news->like += 1;
    $news->save();

    return response()->json([$news], 200);
}

您不需要使用$.each()作为此响应,因为您只发送单个对象响应。只需编写此代码:

$('#like_data').html("<p>"+data.like+"</p>");

如果您想使用each,只需写下:

 $.each(data, function (index, element) {
      $("#like_data").append("<p>" + element.like + "</p>");
 }); 

答案 1 :(得分:0)

试试这个

<script type="text/javascript">
    $(document).ready(function(){
        $('#like').on('click', function(e){
            var id = '{{$news->id}}';
            $.get('{{ url('view/like')}}/'+id, function(data){
                console.log(id);
                console.log(data);
                $('#like_data').empty();
                $.each(data, function (index, element) {
                 $("#like_data").append("<p>" + element.like + "</p>");
              });
            });
        });
    });
</script>