利用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 显示客户端IP与服务器IP的代码
Oct 12 PHP
浅谈PHP调用Webservice思路及源码分享
Jun 04 PHP
php+mysql大量用户登录解决方案分析
Dec 29 PHP
PHP中把数据库查询结果输出为json格式简单实例
Apr 09 PHP
PHP经典面试题之设计模式(经常遇到)
Oct 15 PHP
PHP模板引擎Smarty内建函数详解
Apr 11 PHP
thinkphp跨库操作的简单代码实例
Sep 22 PHP
ThinkPHP实现转换数据库查询结果数据到对应类型的方法
Nov 16 PHP
PHP的RSA加密解密方法以及开发接口使用
Feb 11 PHP
PHP使用SOAP调用API操作示例
Dec 25 PHP
PHP实现的只保留字符串首尾字符功能示例【隐藏部分字符串】
Mar 11 PHP
php7 list()、session及其他模块的修改实例分析
May 25 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中for循环语句的几种变型
2007/03/16 PHP
php面向对象全攻略 (十六) 对象的串行化
2009/09/30 PHP
web目录下不应该存在多余的程序(安全考虑)
2012/05/09 PHP
php读取excel文件示例分享(更新修改excel)
2014/02/27 PHP
浅谈PHP正则中的捕获组与非捕获组
2016/07/18 PHP
php5.2的curl-bug 服务器被php进程卡死问题排查
2016/09/19 PHP
PHP面向对象程序设计类的定义与用法简单示例
2016/12/27 PHP
Laravel中的Blade模板引擎示例详解
2017/10/10 PHP
PHP实现的装箱算法示例
2018/06/23 PHP
javascript void(0)的妙用
2009/10/21 Javascript
JavaScript 学习笔记(六)
2009/12/31 Javascript
javascript当中的代码嗅探扩展原生对象和原型(prototype)
2013/01/11 Javascript
extjs中form与grid交互数据(record)的方法
2013/08/29 Javascript
jquery遍历checkbox的注意事项说明
2014/02/21 Javascript
js怎么覆盖原有方法实现重写
2014/09/04 Javascript
jquery限定文本框只能输入数字(整数和小数)
2016/01/08 Javascript
Bootstrap表单Form全面解析
2016/06/13 Javascript
详谈js对url进行编码和解码(三种方式的区别)
2017/08/16 Javascript
在Vue组件中使用 TypeScript的方法
2018/02/28 Javascript
layer弹出层 iframe层去掉滚动条的实例代码
2018/08/17 Javascript
Vue表单之v-model绑定下拉列表功能
2019/05/14 Javascript
Vue scrollBehavior 滚动行为实现后退页面显示在上次浏览的位置
2019/05/27 Javascript
JQuery表单元素取值赋值方法总结
2020/05/12 jQuery
Javascript数组及类数组相关原理详解
2020/10/29 Javascript
Python使用爬虫抓取美女图片并保存到本地的方法【测试可用】
2018/08/30 Python
Python作用域与名字空间原理详解
2020/03/21 Python
AMAVII眼镜官网:时尚和设计师太阳镜
2019/05/05 全球购物
意大利一家专营包包和配饰的网上商店:Borse Last Minute
2019/08/26 全球购物
施工人员岗位职责
2013/12/12 职场文书
市场营销专业毕业生求职信
2014/07/21 职场文书
内科护士节演讲稿
2014/09/11 职场文书
学年个人总结范文
2015/03/05 职场文书
团结友爱主题班会
2015/08/13 职场文书
2016年度师德标兵先进事迹材料
2016/02/26 职场文书
解决numpy和torch数据类型转化的问题
2021/05/23 Python
Python find()、rfind()方法及作用
2022/12/24 Python