小程序制作签到

小程序制作签到

 签到制作 每天分为  已签到未签到两种状态    把所有的天数存入一个数组中

首先需要知道本月有多少天? 如 :2月有 28天 3月有31天     每一个月的天数都不同 当润年的时候天数也会不同

根据PHP函数date("t"); 可以获得有多少天   把天数存入data变量中在前台页面wxml用if判断

<view class='qp p5' wx:if="{{monthday==31}}">
  <view>
    <image src='/img/{{day[28].imgs}}'></image>
    29日
  </view>
  <view>
    <image src='/img/{{day[29].imgs}}'></image>
    30日
  </view>
  <view>
    <image src='/img/{{day[30].imgs}}'></image>
    31日
  </view>
</view>
<view class='qp p5' wx:if="{{monthday==30}}">
  <view>
    <image src='/img/{{day[28].imgs}}'></image>
    29日
  </view>
  <view>
    <image src='/img/{{day[29].imgs}}'></image>
    30日
  </view>
</view>
<view class='qp p5' wx:if="{{monthday==29}}">
  <view>
    <image src='/img/{{day[28].imgs}}'></image>
    29日
  </view>
</view>
<view class='qp p5' wx:if="{{monthday==28}}">
</view>

看一下表结构

  

表结构非常简单 uid 字段 日期字段

把userid 发送到后台根据userid 查询签到表 查到本月签到了 那些天

我用的thinkphp5框架

        $userid=$_GET["userid"];

        //查询本人这个月 有那些天签到了
        $a=date("Y-m");//获取本月份
        $b=strtotime("+1 months");//获取下一个月份
        $b=date("Y-m",$b);//用来查询 本月的所有天数 大于本月   小于下一个月

        $data=db("qiandao")->where("uid",$userid)->where("riqi",">=",$a)->where("riqi","<=",$b)->select();
        $arr=[];
        foreach ($data as $key => $value) {
        	$arr[]=substr($value["riqi"], 8,2);
        }
        return json_encode($arr);

  

返回的数据格式 已签到的天数 29号 1号 7号 24号 16号

所有的天数存在一个数组 中所有天数的数据格式 每一天数都有一个imgs图片路径 通过更改这个路径来切换 已签/未签状态

根据拿到的天数 修改对应数组的imgs的图片路径

that=this; 
wx.request({
          url: server+'wechar/qiandao/qiandaosel',
          data:{userid:userid},//发送userid 根据userid确定用户
          success:function(res){
            var arr=res.data;
          
            for(var i=0;i<arr.length;i++){
             //通过修改对应的下标imgs路径实现
                //因为数组的下标从0开始所以要-1
              that.data.day[arr[i]-1].imgs="qian_n.png";
            }
        //把修改完的数据放入data里
            that.setData({
              day:that.data.day,
            });
          }
        })

  

点击签到事件

 
        $data["uid"]=$_GET["userid"];
        $data["riqi"]=date("Y-m-d");

        $nowtime=date("Y-m-d");
        //判断用户今天是否已经签到过了
        if(db("qiandao")->where("uid",$data["uid"])->where('riqi',$nowtime)->find()){

        }else{
            db("qiandao")->insert($data);    
        }
        
      //返回今天签到的日期
        return date("d");

  

猜你喜欢

转载自www.cnblogs.com/root135/p/9108262.html
今日推荐