最新消息: 新版网站上线了!!!

thinkphp 3.2的ajaxReturn

3.2RC1的ajaxReturn较之3.1.X的数据结构,有了很大的改变,只返回一个$data。
但haran认为之前的结构更为方便,请刘先生考虑。
简单改变如下:
    /**
     * Ajax方式返回数据到客户端
     * @access protected
     * @param mixed $data 要返回的数据
     * @param String $message 要返回的信息 //增加
     * @param Int $status 要返回的状态  //增加
     * @param String $type AJAX返回数据格式
     * @return void
     */
    protected function ajaxReturn($result,$message='',$status=0,$type='') {
        if(empty($type)) $type  =   C('DEFAULT_AJAX_RETURN');
        $data['data'] = $result; //将数据作为data
        $data['info'] = $message; //将$message作为info
        $data['status'] = $status; //将$status作为status
        switch (strtoupper($type)){
            case 'JSON' :
                // 返回JSON数据格式到客户端 包含状态信息
                header('Content-Type:application/json; charset=utf-8');
                exit(json_encode($data));
            case 'XML'  :
                // 返回xml格式数据
                header('Content-Type:text/xml; charset=utf-8');
                exit(xml_encode($data));
            case 'JSONP':
                // 返回JSON数据格式到客户端 包含状态信息
                header('Content-Type:application/json; charset=utf-8');
                $handler  =   isset($_GET[C('VAR_JSONP_HANDLER')]) ? $_GET[C('VAR_JSONP_HANDLER')] : C('DEFAULT_JSONP_HANDLER');
                exit($handler.'('.json_encode($data).');');  
            case 'EVAL' :
                // 返回可执行的js脚本
                header('Content-Type:text/html; charset=utf-8');
                exit($data);            
            default     :
                // 用于扩展其他返回格式数据
                Hook::listen('ajax_return',$data);
        }
    }
 

转载请注明:谷谷点程序 » thinkphp 3.2的ajaxReturn