小程序制作簽到


小程序制作簽到

 簽到制作 每天分為  已簽到未簽到兩種狀態    把所有的天數存入一個數組中

 

首先需要知道本月有多少天? 如 :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");

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM