首页 > 开发 > ThinkPHP > 正文

ThinkAjax中异步传输技术实现代码

2020-10-12 21:17:18
字体:
来源:转载
供稿:网友

ThinkPHP的官方文档没有给出ThinkAjax的使用方法,令很多初学者使用起来有些不便,今天学到这里,也碰到了很多问题,花时间深究下,做个学习笔记,希望能对初学者有帮助。

代码如下:

  1. <script type="text/javascript" src="__PUBLIC__/js/base.js"></script> 
  2. <script type="text/javascript" src="__PUBLIC__/js/prototype.js"></script> 
  3. <script type="text/javascript" src="__PUBLIC__/js/mootools.js"></script> 
  4. <script type="text/javascript" src="__PUBLIC__/js/Ajax/ThinkAjax.js"></script> 
  5. <script type="text/javascript"> 
  6. function checktitle() 
  7.        ThinkAjax.send('__URL__/checktitle','ajax=1&title='+$('title').value,'','checkbox'); 
  8. </script> 
  9. <form action="__URL__/insert" method="post" id="myform"> 
  10.  <table> 
  11.      <tbody> 
  12.      <tr> 
  13.         <td width="45" class="tRight">标题:</td> 
  14.         <td> 
  15.         <input type="text" id="title" name="title"> 
  16.         <input type="button" value="检查" onClick="checktitle();">          
  17.         </td> 
  18.         <td> 
  19.         <span id="checkbox"></span> 
  20.         </td> 
  21.      </tr>                  
  22.       </tbody> 
  23.  </table> 
  24. </form> 

代码解释:为“检查”按钮添加一个onclick事件,当按钮被点击时,调用checktitle()函数,在checktitle函数中,我们只用到了ThinkAjax对象中的成员方法send.

send:function(url,pars,response,target,tips,effect){……}

可以看出ThinkAjax.send方法共有6个参数:

参数url:表示要将客户端浏览器传输过来的数据提交到服务器上的哪个方法进行处理,我这里提交给“当前模块下的checktitle方法”处理

参数pars:相当于ajax中的send方法中的参数string,表示要提交过去的数据,该参数只用于post方式传值

参数response:自定义的回调函数,如果定义了回调函数,则服务器处理完提交过去的数据之后,将会把处理后的数据交给回调函数进行处理。该回调函数有两个参数:①data②status  参数data:将服务器端处理后的数据赋给data 参数status:表示处理后的状态信息,1表示成功 0 表示失败

参数target:表示将处理后的数据在哪个地方进行显示(或输出),比如:我将此参数赋为:checkbox,表示处理后的数据会在id=”checkbox”的标签进行信息输出.

当前模块下的checktitle方法的源代码如下:

  1. <?php 
  2. class IndexAction extends Action 
  3.        // 首页 
  4.        public function index(){ 
  5.               $this->display(); 
  6.        } 
  7.        // 检查标题是否可用 
  8.        public function checkTitle() 
  9.        { 
  10.               if(!emptyempty($_POST['title'])) 
  11.                      { 
  12.                      $Form     =     D("Form"); 
  13.                      if($Form->getByTitle($_POST['title'])) 
  14.                      { 
  15.                             $this->error('标题已经存在'); 
  16.                      } 
  17.                      else 
  18.                      { 
  19.                             $this->success('标题可以使用!'); 
  20.                      } 
  21.               } 
  22.               else 
  23.               { 
  24.                      $this->error('标题不能为空...'); 
  25.               } 
  26.        } 
  27. ?> 

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

图片精选