利用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 相关文章推荐
1.PHP简介
Oct 09 PHP
Php做的端口嗅探器--可以指定网站和端口
Oct 09 PHP
解决PHP在DOS命令行下却无法链接MySQL的技术笔记
Dec 29 PHP
浅析php header 跳转
Jun 17 PHP
PHP-Fcgi下PHP的执行时间设置方法
Aug 02 PHP
php下载文件源代码(强制任意文件格式下载)
May 09 PHP
PHP管理依赖(dependency)关系工具 Composer 安装与使用
Aug 18 PHP
yii分页组件用法实例分析
Dec 28 PHP
基于PHP实现数据分页显示功能
May 26 PHP
一个简单的php路由类
May 29 PHP
关于PHP中协程和阻塞的一些理解与思考
Aug 11 PHP
Laravel定时任务的每秒执行代码
Oct 22 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 验证图片生成函数
2009/05/21 PHP
php中的Base62类(适用于数值转字符串)
2013/08/12 PHP
新浪的图片新闻效果
2007/01/13 Javascript
JavaScript写的一个DIV 弹出网页对话框
2009/08/14 Javascript
JavaScript为对象原型prototype添加属性的两种方式
2010/08/01 Javascript
初窥JQuery(二) 事件机制(1)
2010/11/25 Javascript
使用js操作cookie的一点小收获分享
2013/09/03 Javascript
实例解析JS布尔对象的toString()方法和valueOf()方法
2015/10/25 Javascript
实例讲解javascript注册事件处理函数
2016/01/09 Javascript
jQuery ajax分页插件实例代码
2016/01/27 Javascript
Node.js用readline模块实现输入输出
2016/12/16 Javascript
Vuejs 组件——props数据传递的实例代码
2017/03/07 Javascript
vue2.0中vue-cli实现全选、单选计算总价格的实例代码
2017/07/18 Javascript
20行JS代码实现粘贴板复制功能
2018/02/06 Javascript
Vue SPA单页应用首屏优化实践
2018/06/28 Javascript
不得不知的ES6小技巧
2018/07/28 Javascript
js中的闭包实例展示
2018/11/01 Javascript
vue-cli 打包后提交到线上出现 &quot;Uncaught SyntaxError:Unexpected token&quot; 报错
2018/11/06 Javascript
jquery实现掷骰子小游戏
2019/10/24 jQuery
浅谈vue生命周期共有几个阶段?分别是什么?
2020/08/07 Javascript
python在windows下实现ping操作并接收返回信息的方法
2015/03/20 Python
python通过openpyxl生成Excel文件的方法
2015/05/12 Python
简单介绍Python的Django框架的dj-scaffold项目
2015/05/30 Python
Python常用库推荐
2016/12/04 Python
详解Python装饰器由浅入深
2016/12/09 Python
flask-socketio实现WebSocket的方法
2018/07/31 Python
python实现将汉字保存成文本的方法
2018/11/16 Python
python五子棋游戏的设计与实现
2019/06/18 Python
日本民宿预约平台:STAY JAPAN
2017/07/01 全球购物
利物浦足球俱乐部官方网上商店:Liverpool FC Official Store
2018/01/13 全球购物
ORACLE十问
2015/04/20 面试题
纪检部部长竞选稿
2015/11/21 职场文书
家庭教育教师培训学习体会
2016/01/14 职场文书
Python办公自动化之Excel(中)
2021/05/24 Python
浅谈PostgreSQL表分区的三种方式
2021/06/29 PostgreSQL
Python初识逻辑与if语句及用法大全
2021/08/07 Python