利用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 程序员也要学会使用“异常”
Jun 16 PHP
PHP中文件上传的一个问题
Sep 04 PHP
php创建基本身份认证站点的方法详解
Jun 08 PHP
PHP内核探索:变量存储与类型使用说明
Jan 30 PHP
destoon实现公司新闻详细页添加评论功能的方法
Jul 15 PHP
php下Memcached入门实例解析
Jan 05 PHP
php使用ffmpeg获取视频信息并截图的实现方法
May 03 PHP
thinkphp5框架API token身份验证功能示例
May 21 PHP
PHP保留两位小数的几种方法
Jul 24 PHP
Laravel 实现添加多语言提示信息
Oct 25 PHP
laravel框架模型中非静态方法也能静态调用的原理分析
Nov 23 PHP
PHP中用Trait封装单例模式的实现
Dec 18 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代码
2006/12/06 PHP
javascript 小型动画组件与实现代码
2010/06/02 PHP
php 判断数组是几维数组
2013/03/20 PHP
PHP制作3D扇形统计图以及对图片进行缩放操作实例
2014/10/23 PHP
php根据指定位置和长度获得子字符串的方法
2015/03/17 PHP
利用PHPExcel实现Excel文件的写入和读取
2017/04/26 PHP
用YUI做了个标签浏览效果
2007/02/20 Javascript
JavaScript多线程的实现方法
2007/05/08 Javascript
Js 回车换行处理的办法及replace方法应用
2013/01/24 Javascript
JS实现拖动示例代码
2013/11/01 Javascript
基于jquery的文字向上跑动类似跑马灯的效果
2014/09/22 Javascript
分享10个原生JavaScript技巧
2015/04/20 Javascript
关于JavaScript限制字数的输入框的那些事
2016/08/14 Javascript
基于百度地图实现产品销售的单位位置查看功能设计与实现
2016/10/21 Javascript
js中的eval()函数把含有转义字符的字符串转换成Object对象的方法
2016/12/02 Javascript
深入学习Bootstrap表单
2016/12/13 Javascript
原生js实现图片放大缩小计时器效果
2017/01/20 Javascript
three.js中文文档学习之通过模块导入
2017/11/20 Javascript
vue的.vue文件是怎么run起来的(vue-loader)
2018/12/10 Javascript
详解Next.js页面渲染的优化方案
2019/01/27 Javascript
基于layui实现高级搜索(筛选)功能
2019/07/26 Javascript
Node.js系列之发起get/post请求(2)
2019/08/30 Javascript
[02:01]2018完美盛典-开场舞《双子星》
2018/12/16 DOTA
浅谈pytorch和Numpy的区别以及相互转换方法
2018/07/26 Python
对python字典过滤条件的实例详解
2019/01/22 Python
详解python itertools功能
2020/02/07 Python
python 爬取疫情数据的源码
2020/02/09 Python
解决python3.x安装numpy成功但import出错的问题
2020/11/17 Python
html5播放视频且动态截图实现步骤与代码(支持safari其他未测试)
2013/01/06 HTML / CSS
美国男士和女士奢侈品折扣手表购物网站:Certified Watch Store
2018/06/13 全球购物
《桥》教学反思
2014/04/09 职场文书
英文邀请函
2015/02/02 职场文书
廉政承诺书范文
2015/04/28 职场文书
创业计划书之DIY自助厨房
2019/09/06 职场文书
创作书写之导游词实用技巧分享(干货)
2019/12/20 职场文书
Python基础之pandas数据合并
2021/04/27 Python