【发布时间】:2021-02-01 22:07:51
【问题描述】:
我正在使用 Yii2 框架,现在我希望通过 Ajax 点击赞按钮成功时更改帖子的赞数。现在我刷新页面,点赞数发生变化。
我的 Ajax 按钮喜欢:
$(document).on('click','.like-btn',function(e){
event.preventDefault();
var self = $(this);
$.ajax({
url: '/site/like',
type: 'POST',
data: {
'id': self.attr('data-id'),
'type': self.attr('data-type')
},
success: function (data){
if (data.status == 403){
$('#login').modal('show');
} else if (data.status == 200){
if (data.code == 1){
let attrCurrent = $("[data-id ="+self.attr('data-id')+"]"+"[data-type ="+self.attr('data-type')+"]");
attrCurrent.addClass('liked');
} else if (data.code == 2) {
let attrCurrent = $("[data-id ="+self.attr('data-id')+"]"+"[data-type ="+self.attr('data-type')+"]");
attrCurrent.removeClass('liked')
}
}
}
});
例如像这样的按钮:
<div class="box-content box-blog-news">
<div class="row show_here ">
<?php foreach ($blog as $value): ?>
<div class="col-lg-4 col-sm-6 mt-10 mb-10">
<div class="item-blog-news mb-0">
<div class="images images-form">
<div class="img-item">
<div class="img-item"><img ... ></div>
</div>
<?=LikeArticleWidget::widget([ 'article_id'=> $value->id, 'type' => ArticleLike::TYPE_LIKE_BLOG, 'user_id' => ArticleLike::isLikedBlog(Yii::$app->user->id, $value->id)]); ?>
</div>
...
<ul class="box-active flex">
<li><span class="icon-default icon-heart-2"></span> (
<?=$ value->getLike()->count() ?>)
</li>
</ul>
</div>
</div>
<?php endforeach; ?>
</div>
</div>
类似组件:
<div class="box-like box-like-nobg like-btn <?= $user_id ? 'liked' : 'like' ?>"
data-id="<?= $article_id ?>"
data-type="<?= $type ?>"></div>
【问题讨论】:
-
嗨也可以显示
like-btnhtml 吗? -
@Swati 我已经更新了。
-
所以
<ul class="box-active flex">..在那个喜欢的 div 里面?请显示正确的html代码 -
@Swati
- .. 和
我认为你没有理解我的问题,我的意思是在显示两个 div 的地方显示正确的 html 代码。