我创建了类似于数据库的当前值的按钮,当单击按钮时,必须在视图上自动更新该值。 目前,该值已在数据库上成功更新,但未在视图上自动更新。
这是我的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()
作为此响应,因为您只发送单个对象响应。只需编写此代码:
$('#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>