利用ThinkPHP内置的ThinkAjax实现异步传输技术的实现方法

2015-01-24信息快讯网

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

准备工作:
① 首先要会使用ThinkPHP这个框架
② 最好有些ajax的基础(可以去看下小飞的另外一篇博文:Ajax实时验证"用户名/邮箱等"是否已经存在)
③ 4个js文档(点此免积分下载)

先贴上源代码:
 
<script type="text/javascript" src="__PUBLIC__/js/base.js"></script> 
<script type="text/javascript" src="__PUBLIC__/js/prototype.js"></script> 
<script type="text/javascript" src="__PUBLIC__/js/mootools.js"></script> 
<script type="text/javascript" src="__PUBLIC__/js/Ajax/ThinkAjax.js"></script> 
<script type="text/javascript"> 
function checktitle() 
{ 
ThinkAjax.send('__URL__/checktitle','ajax=1&title='+$('title').value,'','checkbox'); 
} 
</script> 
<form action="__URL__/insert" method="post" id="myform"> 
<table> 
<tbody> 
<tr> 
<td width="45" class="tRight">标题:</td> 
<td> 
<input type="text" id="title" name="title"> 
<input type="button" value="检查" onClick="checktitle();"> 
</td> 
<td> 
<span id="checkbox"></span> 
</td> 
</tr> 
</tbody> 
</table> 
</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方法的源代码:
 
<?php 
class IndexAction extends Action 
{ 
// 首页 
public function index(){ 
$this->display(); 
} 
// 检查标题是否可用 
public function checkTitle() 
{ 
if(!empty($_POST['title'])) 
{ 
$Form = D("Form"); 
if($Form->getByTitle($_POST['title'])) 
{ 
$this->error('标题已经存在'); 
} 
else 
{ 
$this->success('标题可以使用!'); 
} 
} 
else 
{ 
$this->error('标题不能为空...'); 
} 
} 
} 
?> 

文章作者:WEB开发_小飞
深入php define()函数以及defined()函数的用法详解
获取php页面执行时间,数据库读写次数,函数调用次数等(THINKphp)
解析CI即CodeIgniter框架在Nginx下的重写规则
深入探讨:Nginx 502 Bad Gateway错误的解决方法
PHP Error与Logging函数的深入理解
基于HBase Thrift接口的一些使用问题及相关注意事项的详解
深入解析php之sphinx
基于python发送邮件的乱码问题的解决办法
php class中self,parent,this的区别以及实例介绍
PHP中::、-&gt;、self、$this几种操作符的区别介绍
ajax完美实现两个网页 分页功能的实例代码
ajax取消挂起请求的处理方法
APACHE的AcceptPathInfo指令使用介绍
PHP/Javascript/CSS/jQuery常用知识大全详细整理第1/2页
php和javascript之间变量的传递实现代码
ajax php传递和接收变量实现思路及代码
php4与php5的区别小结(配置异同)
如何使用Linux的Crontab定时执行PHP脚本的方法
在WINDOWS中设置计划任务执行PHP文件的方法
PHPWind与Discuz截取字符函数substrs与cutstr性能比较
Ajax实时验证用户名/邮箱等是否已经存在的代码打包
使用php+Ajax实现唯一校验实现代码[简单应用]
php中XMLHttpRequest(Ajax)不能设置自定义的Referer的解决方法
Linux fgetcsv取得的数组元素为空字符串的解决方法
DISCUZ在win2003环境下 Unable to access ./include/common.inc.php in... 的问题终极解决方案
php数组函数序列之array_unshift() 在数组开头插入一个或多个元素
PHP隐形一句话后门,和ThinkPHP框架加密码程序(base64_decode)
使用PHPRPC实现Ajax安全登录第1/2页
Array of country list in PHP with Zend Framework
PHP pathinfo()获得文件的路径、名称等信息说明
PHP 命令行工具 shell_exec, exec, passthru, system详细使用介绍
php ajax 静态分页过程形式
ThinkPHP 防止表单重复提交的方法
ThinkPHP与PHPExcel冲突解决方法
©2014-2024 dbsqp.com