Здравствуйте.
В моём блоге есть возможность лайкать посты. Для этого в каждом посте есть такая форма
<form action="{{route('likePost', ['id' => Auth::user()->id, 'postId' => $post->id])}}" method="POST">
@csrf @method('PATCH')
<button data-id="{{$post->id}}" id="likebtn" type="submit" class="button-delete-post-2">
<img src="{{asset('img/footer/like.png')}}" class="img-fluid" width="25">
<small class="text-muted mr-4">{{$post->likepost}}</small>
</button>
<input type="hidden" value="{{Auth::user()->id}}" id="user_id">
</form>
Написал скрипт, который должен(ну я так думаю) при нажатии на лайк, без перезагрузки страницы его обновлять(++ или --).
$.ajaxSetup({
headers: {
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
}
});
$('.infinite-scroll').on('click', '#likebtn', function(e) {
e.preventDefault();
var id = $(this).data('id'); //id поста
var token = $("meta[name='csrf-token']").attr("content");
var user_id = $("#user_id").val(); //id пользователя
$.ajax({
url: "id"+user_id+"/"+id+"/like",
type: "PATCH",
data: {_token: token, id: id, user_id: user_id},
success: function(data) {
$("#likebtn"+id).html($(data).find("#likebtn"+id).html());
},
error: function() {
alert('error');
}
});
});
В итоге при нажатии на лайк, ничего не происходит. Для того, что бы счетчик лайков обновился, приходится перезагружать страницу. Консоль тоже никаких ошибок не выдаёт. Подозреваю, что мог накосячить в блоке success, но это не точно. Хотя, если написать $("#likebtn"+id).hide() в принципе всё срабатывает и элемент скрывается.