2016-11-10 22 views
0

データベース上の現在の値でボタンのように作成しました。ボタンをクリックすると、値がビューで自動的に更新されます。 現在、データベース上の値は正常に更新されましたが、ビューで自動的に更新されるわけではありません。あなたは、コントローラからJSON応答を渡す必要がjQueryがボタンをクリックしたときに表示される値を自動的に更新

public function like($id){ 

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

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

    return $news; 
} 
+0

を試してみてくださいあなたは問題が何であるかを説明してくださいことはできますか?あなたはどんなエラーを受けますか? –

答えて

1

<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> 

はここに私のコントローラである:

は、ここに私のjqueryのコードです。この

public function like($id){ 

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

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

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

と同じように、あなたは、単一のオブジェクト応答を送信するので、この応答のため$.each()を使用する必要はありません。あなたは単に書くeachを使用したい場合は

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

を::ただ、単純にこのコードを書い

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

こんにちは、その作業ショー単一のオブジェクト。 でも値はまだ "未定義"と言われていますが、意味は何ですか?説明していただけますか? – rafitio

+0

ありがとう、その作業は今:) – rafitio

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> 
関連する問題