이 글은 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 중국어 홈페이지를 참고해주세요!