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


Posted in PHP onDecember 19, 2011

准备工作:
① 首先要会使用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 相关文章推荐
用PHP实现多服务器共享SESSION数据的方法
Mar 16 PHP
php数组函数序列之rsort() - 对数组的元素值进行降序排序
Nov 02 PHP
写出高质量的PHP程序
Feb 04 PHP
php实现可以设置中奖概率的抽奖程序代码分享
Jan 19 PHP
PHP中数组的分组排序实例
Jun 01 PHP
php查询操作实现投票功能
May 09 PHP
php实现的SSO单点登录系统接入功能示例分析
Oct 12 PHP
php生成二维码图片方法汇总
Dec 17 PHP
thinkPHP分页功能实例详解
May 05 PHP
PHP连接sftp并下载文件的方法教程
Aug 26 PHP
PHP Include文件实例讲解
Feb 15 PHP
微信推送功能实现方式图文详解
Jul 12 PHP
如何使用Linux的Crontab定时执行PHP脚本的方法
Dec 19 #PHP
PHP定时执行计划任务的多种方法小结
Dec 19 #PHP
在WINDOWS中设置计划任务执行PHP文件的方法
Dec 19 #PHP
php安全配置 如何配置使其更安全
Dec 16 #PHP
PHP substr 截取字符串出现乱码问题解决方法[utf8与gb2312]
Dec 16 #PHP
php中使用DOM类读取XML文件的实现代码
Dec 14 #PHP
通达OA公共代码 php常用检测函数
Dec 14 #PHP
You might like
PHP网页游戏学习之Xnova(ogame)源码解读(十一)
2014/06/25 PHP
php生成百度sitemap站点地图类函数实例
2014/10/17 PHP
PHP中调用SVN命令更新网站方法
2015/01/07 PHP
PHP中strcmp()和strcasecmp()函数字符串比较用法分析
2016/01/07 PHP
PHP删除数组中指定下标的元素方法
2018/02/03 PHP
实例化php类时传参的方法分析
2020/06/05 PHP
IE下js调试工具Companion.JS
2010/10/15 Javascript
asp.net中System.Timers.Timer的使用方法
2013/03/20 Javascript
JavaScript中prototype为对象添加属性的误区介绍
2013/10/15 Javascript
node.js入门教程迷你书、node.js入门web应用开发完全示例
2014/04/06 Javascript
iframe的onreadystatechange事件在firefox下的使用
2014/04/16 Javascript
Javascript模块化编程详解
2014/12/01 Javascript
向JavaScript的数组中添加元素的方法小结
2015/10/24 Javascript
JavaScript预解析及相关技巧分析
2016/04/21 Javascript
form+iframe解决跨域上传文件的方法
2016/11/18 Javascript
教你5分钟学会用requirejs(必看篇)
2017/07/25 Javascript
深入解析nodejs HTTP服务
2017/07/25 NodeJs
关于Vue在ie10下空白页的debug小结
2018/05/02 Javascript
基于vue如何发布一个npm包的方法步骤
2019/05/15 Javascript
Vue移动端右滑屏幕返回上一页附源码下载
2019/06/26 Javascript
JS实现点击下拉列表文本框中出现对应的网址,点击跳转按钮实现跳转
2019/11/25 Javascript
在vue中配置不同的代理同时访问不同的后台操作
2020/09/11 Javascript
[23:18]Spirit vs Liquid Supermajor小组赛A组 BO3 第二场 6.2
2018/06/03 DOTA
django 自定义用户user模型的三种方法
2014/11/18 Python
python装饰器深入学习
2018/04/06 Python
Python线性拟合实现函数与用法示例
2018/12/13 Python
python实现websocket的客户端压力测试
2019/06/25 Python
浅析Python语言自带的数据结构有哪些
2019/08/27 Python
python zip()函数的使用示例
2020/09/23 Python
python实现按日期归档文件
2021/01/30 Python
伦敦一家领先的精品零售商:IRIS Fashion
2019/05/24 全球购物
艺术设计专业个人求职信范文
2013/12/11 职场文书
关于青春的演讲稿
2014/05/05 职场文书
法人身份证明书
2014/10/08 职场文书
2016年基层党支部书记公开承诺书
2016/03/25 职场文书
JavaScript异步操作中串行和并行
2021/11/20 Javascript