【发布时间】:2019-12-17 16:48:54
【问题描述】:
我正在尝试为项目创建一个收藏/不收藏按钮。该按钮需要是可切换的,以便当用户第一次单击它时,该项目被添加到收藏夹中,下次他们单击它时,该项目应该被取消收藏。它还应该记住用户已经收藏的所有项目并以不同的方式显示按钮。
这是我目前拥有的,我遍历所有项目并显示删除或添加按钮,具体取决于他们是否收藏了该项目:
@foreach($items as $item)
@if($item->isFavourited)
<button id="deletefavourite{{$item->id}}" onClick="deleteFromFavourites({{$item->id}}, {{ Auth::user()->id }})" name="addfavourite" class="btn btn-lg"><i class="fas fa-heartbeat"></i></button>
@else
<button id="addfavourites{{$item->id}}" onClick="addToFavourites({{$item->id}}, {{ Auth::user()->id }})" name="deletefavourite" class="btn btn-lg"><i class="fas fa-heart" ></i></button>
@endif
@endforeach
我的 Javascript 函数使用 AJAX 请求添加/删除最喜欢的项目:
function addToFavourites(itemid, userid) {
var user_id = userid;
var item_id = itemid;
$.ajax({
type: 'post',
url: 'api/addfavourite',
data: {
'user_id': user_id,
'item_id': item_id,
},
success: function () {
$('#addfavourites' + item_id).css({
'color': '#ad1707'
});
},
error: function (XMLHttpRequest) {
// handle error
}
});
}
Function deleteFromFavourites is the same, but just doing a DELETE ajax
request to remove the item
问题在于,除非我刷新页面,否则按钮不会在收藏夹和不收藏夹之间切换。如何在不刷新页面的情况下执行此操作?
【问题讨论】:
标签: javascript laravel laravel-blade