2016-11-10 91 views
0

我創建像按鈕與數據庫上的當前值,當按鈕被點擊時,必須自動更新視圖上的值。 目前,數據庫中的值已成功更新,但未自動更新視圖。jQuery按鈕點擊時自動更新視圖值

這裏是我的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; 
} 
+0

可以請你描述是什麼問題只需簡單地編寫代碼?你得到什麼錯誤? –

回答

1

您需要將您的控制器JSON響應。像這樣

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

嗨,它的工作表演單個對象。 但值仍然說「未定義」,什麼意思是undefined?你能解釋一下嗎? – 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>