thinkphp - TP为什么加上$this->ajaxReturn()后就打不开view模板了?

查看:380
本文介绍了thinkphp - TP为什么加上$this->ajaxReturn()后就打不开view模板了?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

为什么打开login模板时什么都不显示只显示一个0呢?把这句话$this->ajaxReturn($res)去掉就可以显示了 这是为什么??怎样才能显示呢?

public function login(){
            $user=M('user');
            $name=I('name');
            $pw=I('pw');
            $res1=$user->where("username='$name' AND password='$pw'")->select();
            if($res1){
                $result=1;
            }else{
                $result=0;
            }
            $this->ajaxReturn($result);
            $this->display();
    }

解决方案

其实ControllerajaxReturn的方法已经很简单易懂,代码如下(ThinkPHPLibraryThinkController.class.php - 210行):

    protected function ajaxReturn($data,$type='',$json_option=0) {
        if(empty($type)) $type  =   C('DEFAULT_AJAX_RETURN');
        switch (strtoupper($type)){
            case 'JSON' :
                // 返回JSON数据格式到客户端 包含状态信息
                header('Content-Type:application/json; charset=utf-8');
                exit(json_encode($data,$json_option));
            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,$json_option).');');  
            case 'EVAL' :
                // 返回可执行的js脚本
                header('Content-Type:text/html; charset=utf-8');
                exit($data);            
            default     :
                // 用于扩展其他返回格式数据
                Hook::listen('ajax_return',$data);
        }
    }

在方法内部,直接就利用exit函数进行显示退出,所以不会经过下面的display方法.
不过,你可以在__destruct方法里面写display方法,那就会在exit后调用,不过,然并卵...

这篇关于thinkphp - TP为什么加上$this->ajaxReturn()后就打不开view模板了?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆