Jadual Kandungan
回复讨论(解决方案)
Rumah pembangunan bahagian belakang tutorial php Thinkphp的ajax提交的问题

Thinkphp的ajax提交的问题

Jun 23, 2016 pm 02:02 PM

在做ajax提交的过程中遇到两个问题。
1:在使用ajax提交到一个action的method中之后,我又使用$this->upload()的方式调用了另一个方法。在这个方法中有需要返回错误或者成功的信息,所以使用了【return...】返回一个值,可是这个值就直接返回给前台了。。我想的是应该从提交到的method中返回到前台。。

2:使用$this->isAjax()判断返回错误,我是使用thinkajax提交的表单,所以在form下添加了一个可是还是判断不成功。。

请大家不吝赐教。。


回复讨论(解决方案)

我又使用$this->upload()的方式调用了另一个方法。 在这个方法中有需要返回错误或者成功的信息,所以使用了【return...】返回一个值,

你直接在你的method里面判断“这个方法的返回值就可以了呀”,然后给前台对应的返回提示信息。

第二个问题我感觉判断是多余的。

你直接在你的method里面判断“这个方法的返回值就可以了呀”,然后给前台对应的返回提示信息。
因为我这个站里面要上传许多文件,所以我想写一个通用的方法来上传文件,name这个上传文件的方法,就必然要返回上传是否成功的信息啊,所以就使用了return。。还有其他从方法里面带出信息,又不返回到客户端的方法吗??

第二个问题我感觉判断是多余的。 是可以不用判断,直接用ajax返回就可以了,就是想搞明白原因而已。。

 能否贴出简单代码,让我们给你分析一下。

能否贴出简单代码,让我们给你分析一下。

public function uploadVideo(){			//dump($_POST);			$info = $this->upload('temp');		}				public function upload($module = '', $path = '', $thumb = '', $width = '', $height = '') {		  $module = $module = ""?'temp':$module;		  switch ($module){			   case 'temp':$path = C(ATTACHDIR) . '/temp/' . $path;				break;			   case 'storehouse':$path = C(ATTACHDIR) . '/storehouse/' . $path;				break;			   case 'shop':$path = C(ATTACHDIR) . '/shop/' . $path;				break;			   case 'trader': $path = C(ATTACHDIR) . '/trader/' . $path;				break;			   case 'group': $path = C(ATTACHDIR) . '/group/' . $path;				break;			   case 'my': $path = C(ATTACHDIR) . '/avatar/' . $path;				break;			   default:$path = C(ATTACHDIR) . '/file/' . $path;		  }		 		  if (!is_dir($path)) @mkdir($path);		  import("ORG.Net.UploadFile");		 		  $upload = new UploadFile();		  $upload->maxSize = C(ATTACHSIZE);		  $upload->allowExts = explode(',', strtolower(C(ATTACHEXT)));		  $upload->savePath = $path;		  $upload->saveRule = 'uniqid';		  //$upload->allowTypes=array('jpg');		  //empty($thumb)?$upload->thumb = C(ATTACH):$upload->thumb = $thumb;		  //empty($width)?$upload->thumbMaxWidth = C(THUMBMAXWIDTH):$upload->thumbMaxWidth = $width;		  //empty($height)?$upload->thumbMaxHeight = C(THUMBMAXHEIGHT):$upload->thumbMaxHeight = $height;		  if (!$upload->upload()){		  		return $this->error($upload->getErrorMsg());			  }else{		  		return $upload->getUploadFileInfo();		  				  }	 }
Salin selepas log masuk

   if (!$upload->upload()){
                  return $this->error($upload->getErrorMsg());              }else{
                  return $upload->getUploadFileInfo();
                            }
     }
改成:
  if (!$upload->upload()){
                  $this->assign("jumpUrl","你要跳转的method地址");
                   $this->error($upload->getErrorMsg());              }else{
                  return $upload->getUploadFileInfo();
                            }
     }

if (!$upload->upload()){
                  return $this->error($upload->getErrorMsg());              }else{
                  return $upload->getUploadFileInfo();
                            }
 ……  这样的话,要是出错,就跳转了,我想的是,还是给客户端返回json格式的数据,然后用js进行处理。。

 if (!$upload->upload()){
      return $this->error($upload->getErrorMsg());              
}else{
      return $upload->getUploadFileInfo();
}

 改成:
   if (!$upload->upload()){
       $returnmsg=array("isok"=>"false","msg"=>$upload->getErrorMsg());             
 }else{
       $returnmsg=array("isok"=>"true","msg"=>$upload->getUploadFileInfo());
  }

return $returnmsg;
不知道这样是可不可以...

引用 7 楼 nowphp 的回复:if (!$upload->upload()){
                  return $this->error($upload->getErrorMsg());              }else{
                  return $upload->getUploadFileInfo();
   ……

if (!$upload->upload()){
                  echo jsson_encode( $this->error($upload->getErrorMsg()); exit;             }else{
                  return $upload->getUploadFileInfo();
                            }

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Tag artikel panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

11 skrip pemendek URL terbaik PHP (percuma dan premium) 11 skrip pemendek URL terbaik PHP (percuma dan premium) Mar 03, 2025 am 10:49 AM

11 skrip pemendek URL terbaik PHP (percuma dan premium)

Pengenalan kepada API Instagram Pengenalan kepada API Instagram Mar 02, 2025 am 09:32 AM

Pengenalan kepada API Instagram

Bekerja dengan Data Sesi Flash di Laravel Bekerja dengan Data Sesi Flash di Laravel Mar 12, 2025 pm 05:08 PM

Bekerja dengan Data Sesi Flash di Laravel

Respons HTTP yang dipermudahkan dalam ujian Laravel Respons HTTP yang dipermudahkan dalam ujian Laravel Mar 12, 2025 pm 05:09 PM

Respons HTTP yang dipermudahkan dalam ujian Laravel

Curl dalam PHP: Cara Menggunakan Pelanjutan PHP Curl dalam API REST Curl dalam PHP: Cara Menggunakan Pelanjutan PHP Curl dalam API REST Mar 14, 2025 am 11:42 AM

Curl dalam PHP: Cara Menggunakan Pelanjutan PHP Curl dalam API REST

Bina aplikasi React dengan hujung belakang Laravel: Bahagian 2, React Bina aplikasi React dengan hujung belakang Laravel: Bahagian 2, React Mar 04, 2025 am 09:33 AM

Bina aplikasi React dengan hujung belakang Laravel: Bahagian 2, React

12 skrip sembang php terbaik di codecanyon 12 skrip sembang php terbaik di codecanyon Mar 13, 2025 pm 12:08 PM

12 skrip sembang php terbaik di codecanyon

Pemberitahuan di Laravel Pemberitahuan di Laravel Mar 04, 2025 am 09:22 AM

Pemberitahuan di Laravel

See all articles