wx小程序 简单点赞和评论

点赞 小程序端wxml:

<view>
    <image wx:if="{{item.like==1}}" bindtap="like" data-id="{{item.id}}" src="/img/sheart.png" style="width:80rpx;height:80rpx">
    </image>
    <image wx:else bindtap="like" data-id="{{item.id}}" src="/img/heart.png" style="width:80rpx;height:80rpx">
    </image>
</view>

js:

like:function(e){
  let tid = e.target.dataset.id
  let token = wx.getStorageSync('token')
  let that = this
  wx.request({
    url: 'http://www.xxx.com/api/giveLike',
    header:{token},
    data:{token,tid},
    success:function(res){
      that.onLoad()
    }
  })
},

后端php:

public function giveLike(Request $request){
    // 接收数据 并解密id
    $token = $request->input('token');
    $uid = common::checkToken($token);
    // 动态id
    $tid = $request->input('tid');

    // 查询是否点赞
    $data = Like::where(['uid'=>$uid,'tid'=>$tid])->first();

    if (!$data){
        // 创建点赞信息
        $res = Like::create(['uid'=>$uid,'tid'=>$tid]);
        return ['code'=>200,'msg'=>'点赞成功','data'=>''];
    }

    // 删除点赞信息
    $res = Like::where(['uid'=>$uid,'tid'=>$tid])->delete();
    return ['code'=>200,'msg'=>'取消点赞成功','data'=>''];
}

评论 小程序端wxml:

<view>
  评论区: <text>\n\n</text>
  <view wx:for="{{item.comment}}" wx:key="comment">
    {{item.user.nickname}} : {{item.content}}
    <text>\n\n</text>
  </view>
  <form catchsubmit="commit">
    <l-input label="评论" name="content" value="{{content}}"></l-input>
    <input type="text" hidden="true" name="tid" value="{{item.id}}"/>
    <button form-type="submit">评论</button>
  </form>
</view>

js:

// 评论
commit:function(e){
  let content = e.detail.value.content
  if(content.length < 4){
    wx.showToast({
      title: '不得少于4个字符',
      icon:'error'
    })
  }
  let tid = e.detail.value.tid
  let token = wx.getStorageSync('token')
  let that = this
  wx.request({
    url: 'http://www.xxx.com/api/comment',
    header:{token},
    data:{token,content,tid},
    success:function(res){
      if(res.data.code != 200 ){
        wx.showToast({
          title: res.data.msg,
          icon:'error'
        })
      }
      that.onLoad()
    }
  })

},

后端php:

// 评论
public function comment(Request $request){
    // 接收数据 并解密id
    $token = $request->input('token');
    $uid = common::checkToken($token);
    // 动态id
    $tid = $request->input('tid');
    // 评论内容
    $content = $request->input('content');

    try {
        Comment::create(['uid'=>$uid,'tid'=>$tid,'content'=>$content]);
        return ['code'=>200,'msg'=>'评论成功','data'=>''];
    }catch (\Exception $e){
        return ['code'=>400,'msg'=>$e->getMessage(),'data'=>''];

    }

}

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
以下是一个简单微信小程序实现点赞评论和发布的示例代码: wxml文件: ``` <!-- 点赞 --> <view class="like" bindtap="onLikeTap"> <image class="like-icon" src="{{isLiked ? '/images/liked.png' : '/images/like.png'}}"></image> <text class="like-text">{{isLiked ? '已赞' : '点赞'}}</text> </view> <!-- 评论 --> <view class="comment"> <input class="comment-input" placeholder="说点什么吧..." value="{{comment}}" bindinput="onCommentInput"></input> <button class="comment-button" disabled="{{comment.length === 0}}" bindtap="onCommentTap">发布</button> </view> <!-- 评论列表 --> <view class="comment-list"> <block wx:for="{{comments}}" wx:key="index"> <view class="comment-item"> <text class="comment-username">{{item.username}}</text> <text class="comment-content">{{item.content}}</text> </view> </block> </view> ``` js文件: ``` Page({ data: { isLiked: false, // 是否已点赞 comment: '', // 评论内容 comments: [ // 评论列表 { username: '张三', content: '这个小程序真棒!' }, { username: '李四', content: '点赞支持!' } ] }, // 点赞 onLikeTap: function () { this.setData({ isLiked: !this.data.isLiked }) }, // 输入评论 onCommentInput: function (e) { this.setData({ comment: e.detail.value }) }, // 发布评论 onCommentTap: function () { var comment = { username: '匿名用户', content: this.data.comment } var comments = this.data.comments.concat(comment) this.setData({ comments: comments, comment: '' }) } }) ``` 其中,点赞功能通过 `isLiked` 变量实现,评论功能通过 `comment` 变量表示当前输入的文本内容,并通过 `comments` 变量存储评论列表。在发布评论时,将新评论追加到评论列表中,并清空输入框内容。需要注意的是,发布评论时没有实现用户登录和身份验证,因此暂时使用匿名用户来表示评论者。如果需要实现更完整的功能,需要进一步完善代码。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值