php後臺開啟網頁即判斷會員是否過期
阿新 • • 發佈:2018-11-09
公司要求做一個會員時間設定功能,一旦會員期限已過就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');
}
}