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');
        }
    }

猜你喜欢

转载自blog.csdn.net/m0_37899866/article/details/80267735