Heim  >  Artikel  >  php教程  >  Analyse der AJAX-Rückgabemethode ajaxReturn() in thinkphp

Analyse der AJAX-Rückgabemethode ajaxReturn() in thinkphp

高洛峰
高洛峰Original
2016-12-30 09:45:181683Durchsuche

In diesem Artikel wird die AJAX-Rückgabemethode ajaxReturn() in thinkphp analysiert. Teilen Sie es als Referenz mit allen. Die Details lauten wie folgt:

Das System unterstützt jede AJAX-Klassenbibliothek. Die Action-Klasse stellt die ajaxReturn-Methode für die Rückgabe von Daten an den Client nach einem AJAX-Aufruf bereit. Es unterstützt außerdem die drei Methoden JSON, XML und EVAL, um Daten vom Client zu empfangen, die durch die Konfiguration von DEFAULT_AJAX_RETURN festgelegt werden können. Die Standardkonfiguration verwendet das JSON-Format, um Daten zurückzugeben, wenn Sie verschiedene AJAX-Klassenbibliotheken auswählen.

Wenn Sie die ajaxReturn-Methode von ThinkPHP zum Zurückgeben von Daten verwenden möchten, müssen Sie bestimmte Spezifikationen für das Rückgabedatenformat einhalten. Zu den von ThinkPHP zurückgegebenen Datenformaten gehören:

Status-Betriebsstatus
Info-Eingabeaufforderungsinformationen
Datenrückgabedaten

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

Rückgabedatendaten können Zeichenfolgen unterstützen , Zahlen, Arrays und Objekte werden bei der Rückgabe an den Client gemäß unterschiedlichen Rückgabeformaten codiert und übertragen. Wenn es im JSON-Format vorliegt, wird es automatisch in eine JSON-Zeichenfolge codiert. Wenn es sich im XML-Modus befindet, wird es automatisch in eine XML-Zeichenfolge codiert. Wenn es sich im EVAL-Modus befindet, werden nur die Zeichenfolgendaten ausgegeben. und Status- und Infoinformationen werden ignoriert.

Das Folgende ist ein einfaches Beispiel:

$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-Quellcode:

/**
* 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 增加其它格式
    }
}

Ich hoffe, dieser Artikel hilft Ihnen beim Entwerfen von PHP-Programmen basierend auf dem ThinkPHP-Framework.

Weitere Artikel zur Analyse der AJAX-Rückgabemethode ajaxReturn() in thinkphp finden Sie auf der chinesischen PHP-Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn