ThinkPHP3.1版對AJAX的支持更加完善了,具體表現在:
1.判斷AJAX方式改進
現在可以直接使用常量IS_AJAX來判斷是否AJAX方式請求,用來取代之前的Action類的isAjax方法,優勢是可以在任何代碼裡面進行判斷。而Action類的error和success方法內置就支持對AJAX自動判斷支持。
2.ajaxReturn方法完善
原來的ajaxReturn方法只能返回固定結構的數據,包括data、status和info索引信息,如果需要擴展額外的返回數據信息,只能通過ajaxAssign方法,而ThinkPHP3.1版本則改進了ajaxReturn方法本身,可以更好的支持ajax數據擴展,例如:
$data['status'] = 1; $data['info'] = '返回信息'; $data['data'] = '返回數據'; $data['url'] = 'URL地址'; $this->ajaxReturn($data);
data傳值數組可以隨意定義。
改進後的ajaxReturn方法也兼容之前的寫法,例如:
$this->ajaxReturn($data,'info',1);
系統會自動把info和1兩個參數並入$data數組中,等同於賦值
$data['info'] = 'info'; $data['status'] = 1; $data['data'] = $data; $this->ajaxReturn($data);
但這種用法不再建議使用了。
3.success和error方法完善對ajax支持
如果是ajax方式下面,Action類的success和error方法都做了改進支持,這兩個方法的參數會轉換成ajaxReturn方法的data數據的info、status和url參數。還可以支持傳入其他的參數,有兩種方式支持ajax傳值。以success方法為例,第一種方式是直接傳入ajax數據
$data['code'] = 200; $data['name'] = 'ThinkPHP'; $this->success('成功提示信息','跳轉地址',$data);
或者采用
$this->assign('code',200); $this->assign('name','thinkphp'); $this->success('成功提示信息','跳轉地址');
最終返回給客戶端的ajax數據信息是一個數組,包括name、code、info、status和url。