小程序制做签到

小程序制做签到javascript

 签到制做 天天分为  已签到未签到两种状态    把全部的天数存入一个数组中php

 

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

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

<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>

 

看一下表结构thinkphp

  

 

表结构很是简单 uid 字段 日期字段json

把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");

  

相关文章
相关标签/搜索