>  기사  >  php教程  >  thinkphp의 AJAX 반환 ajaxReturn() 메소드 분석

thinkphp의 AJAX 반환 ajaxReturn() 메소드 분석

高洛峰
高洛峰원래의
2016-12-30 09:45:181732검색

이 글은 thinkphp의 AJAX return ajaxReturn() 메소드를 분석합니다. 참조용으로 모든 사람과 공유하세요. 세부 사항은 다음과 같습니다.

시스템은 모든 AJAX 클래스 라이브러리를 지원합니다. Action 클래스는 AJAX 호출 후 클라이언트에 데이터를 반환하기 위한 ajaxReturn 메서드를 제공합니다. 또한 DEFAULT_AJAX_RETURN을 구성하여 설정할 수 있는 JSON, XML 및 EVAL 세 가지 방법을 지원합니다. 기본 구성에서는 다양한 AJAX 클래스 라이브러리를 선택할 때 데이터를 반환하는 데 다양한 방법을 사용할 수 있습니다.

ThinkPHP의 ajaxReturn 메소드를 사용하여 데이터를 반환하려면 특정 반환 데이터 형식 사양을 준수해야 합니다. ThinkPHP가 반환하는 데이터 형식은 다음과 같습니다:

상태 작업 상태
정보 프롬프트 정보
데이터 반환 데이터

$this->ajaxReturn(返回数据,提示信息,操作状态);

반환 데이터 데이터는 문자열을 지원할 수 있습니다. , 숫자, 배열 및 개체는 클라이언트에 반환될 때 다양한 반환 형식에 따라 인코딩되어 전송됩니다. JSON 형식인 경우 자동으로 JSON 문자열로 인코딩되고, XML 모드인 경우 자동으로 XML 문자열로 인코딩되어 문자열 데이터 데이터만 출력됩니다. 상태 및 정보 정보는 무시됩니다.

다음은 간단한 예입니다:

$User=M("User");//实例化User对象
$result = $User->add($data);
if ($result){
  //成功后返回客户端新增的用户ID,并返回提示信息和操作状态
  $this->ajaxReturn($result,"新增成功!",1);
}else{
  //错误后返回错误的操作状态和提示信息
  $this->ajaxReturn(0,"新增错误!",0);
}
$data['status'] = 1;
$data['info'] = 'info';
$data['size'] = 9;
$data['url'] = $url;
$this->ajaxReturn($data,'JSON');

thinkphp 소스 코드:

/**
* Ajax方式返回数据到客户端
* @access protected
* @param mixed $data 要返回的数据
* @param String $type AJAX返回数据格式
* @return void
*/
protected function ajaxReturn($data,$type='') {
    if(func_num_args()>2) {// 兼容3.0之前用法
      $args      =  func_get_args();
      array_shift($args);
      $info      =  array();
      $info['data']  =  $data;
      $info['info']  =  array_shift($args);
      $info['status'] =  array_shift($args);
      $data      =  $info;
      $type      =  $args?array_shift($args):'';
    }
    if(empty($type)) $type =  C('DEFAULT_AJAX_RETURN');
    if(strtoupper($type)=='JSON') {
      // 返回JSON数据格式到客户端 包含状态信息
      header('Content-Type:text/html; charset=utf-8');
      exit(json_encode($data));
    }elseif(strtoupper($type)=='XML'){
      // 返回xml格式数据
      header('Content-Type:text/xml; charset=utf-8');
      exit(xml_encode($data));
    }elseif(strtoupper($type)=='EVAL'){
      // 返回可执行的js脚本
      header('Content-Type:text/html; charset=utf-8');
      exit($data);
    }else{
      // TODO 增加其它格式
    }
}

이 기사가 ThinkPHP 프레임워크를 기반으로 PHP 프로그램을 설계하는 데 도움이 되기를 바랍니다.

thinkphp의 AJAX return ajaxReturn() 메소드 분석과 관련된 더 많은 글은 PHP 중국어 홈페이지를 참고해주세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.