1. 程式人生 > >php後臺開啟網頁即判斷會員是否過期

php後臺開啟網頁即判斷會員是否過期

公司要求做一個會員時間設定功能,一旦會員期限已過就ajax請求設定是否會員欄位為否。頁面除了展示狀態,還可修改會員狀態,時間等專案。我做了個功能,$(document).ready({})寫了個判斷:now>end_time,即ajax請求更改is_vip欄位為0(非會員) 。問題出現了:等會員時間更新後提交會將is_vip欄位置為0,百思不得其解!

後來查原因,在表單提交後,thinkphp的$this->success()方法會去請求網頁,此時頁面中的end_time==0 不是DomReady了嗎?success()方法結束後跳轉回會員頁面又重新一次走js的DomReady了,此時end_time是能獲取頁面值的。

解決方案,只能在判斷now>end_time時再加入end_time>0 以免頁面沒有載入完成,end_time==0時去更改了is_vip的值。

js程式碼如下:

 $(document).ready(function(){   

        var now=Date.parse(new Date())/1000;  

        var end=$("#end_time").val();

        var end_time=Date.parse(end)/1000;
        
        //會員過期後設置
        if(now>end_time&&end_time>0){
            $.ajax({
                type:"GET",                
                url:'{Saivi::U("Token/overdate",array("id"=>$token))}',
                success:function(res){
                    //console.log(res);
                    $("#is_vip").val(0);
                }
            });            
        }

    })

php:

public function overdate(){
        $id = $this->_get('id');
        $res=M('user')->where(array('id'=>$id))->setField('is_vip',0);
        if($res){
            $this->ajaxReturn('success');
        }
    }