thinkphp中ajax与php响应过程详解


Posted in PHP onDecember 08, 2014

本文实例分析了thinkphp中ajax与php响应过程。分享给大家供大家参考。具体分析如下:

一般将前台页面搜索结果中,不喜欢的内容(链接),删除掉,因为整个网站的编程框架式thinkphp,运用js中的ajax对页面进行响应,调用后台php接口,实现前台和后台数据库的同时更新.

首先我们需要做的就是在前台页面中添加一个文本“删除”,可以这么添加:

<a href="javascript:void(0);" id= "<php>echo $val[id]</php>" class="delete" >删除</a>

上面的html代码的意思:就是给删除添加一个href,这个href是个js函数,类似于超链接的作用,当然对于我这样的新手在刚开始的时候会有疑惑,我们平时的超链接不是这样的,网页中很多的javascript:void(0),那程序怎么知道用户点击删除后,会响应其真正对应的js函数呢?别急,这就是为什么会为删除添加id以及class这样的标签,相信我把js中的代码公布出来以后你就会明白了,代码如下:

jQuery(".list a.delete").click(function(){

            if(confirm("你确定要删除吗?")){

                var _this=this;

                var id = jQuery(_this).attr("id");

                jQuery.ajax({

                    url : '/Search/index.php/Jason/delete?',

                    data : {'id':id},

                    dataType : 'json',

                    success : function(data){

                        var del = data.del;

                        if(del == 1){//删除成功

                            jQuery("#"+id).parents(".list").remove();

                        }else{//删除失败

                            alert("删除失败");

                        }

                    }

                });

            }

});

大家看函数的头部:jQuery(".list a.delete").click(),jQuery后面的标签是很重要的,这就保证了jquery很准确的响应页面中用户点击的“位置”,添加的事件为click(),在click里添加响应事件的代码:var id = jQuery(_this).attr("id");获取a对应的id,因为这个id是我们删除数据库时用到的链接id,当然这种直接明文的方式不好,在这里只是介绍整个响应过程。调用ajax,实现异步的运行整个过程。我们设置了js接受的是json串,这里的方式应该有很多种吧,我没有去尝试,大家要是有兴趣可以自行尝试一下。/Search/index.php/Jason/delete?这句话就是js去请求php的接口,php接口对用的代码如下:

注意ajax在求php接口时的路径,也就是delete函数必须放在JasonAction.class.php中,此例子是必须这样的:

public function delete(){  

        if($this->isGet()){  

            $userId = session("uid");//用户登录  

            if(!empty($userId)){  

                $a = M('***');  

                $id = $this->_get('id');  

                $result=$a->where("id=$id")->delete();//删除  

                if($result > 0){  

                    $arr = array("del"=>'1');  

                }else{  

                    $arr = array("del"=>'0');  

                }  

                $json_str = json_encode($arr);  

                echo $json_str;//返回给js  

            }  

        }  

}

相信大家对上面的代码不会陌生吧,整个过程都是thinkphp框架内部配置完毕的.

var del = data.del;这句是接受php代码返回来的json串中del这个key的value,进而在前台进行页面更新和响应.

if(del == 1){//删除成功  

     jQuery("#"+id).parents(".list").remove();//这句话就是后台删除成功后,直接在前台对响应的div进行删除,这样性能就会很快,无需进行后台数据的重新提取至前台页面中,  

 }else{//删除失败  

     alert("删除失败");  

}

整个响应的过程就是这样,至于效果优化,是优化和细化方面的问题,后来,身边的同事又告诉我前台移除响应链接的另一个动态效果:

即将:

jQuery("#"+id).parents(".list").remove();
替换为:
jQuery("#"+id).parents(".list").slideUp("slow", function(){  

      jQuery(this).remove();  

});

大家不妨试试效果,很不错的,好了,响应过程记载完毕,只是自己的个人见解和认知.

希望本文所述对大家基于ThinkPHP框架的PHP程序设计有所帮助。

PHP 相关文章推荐
PHP5在Apache下的两种模式的安装
Sep 05 PHP
PHP中调用JAVA
Oct 09 PHP
PHP编程网上资源导航
Oct 09 PHP
基于文本的留言簿
Oct 09 PHP
PHP 学习路线与时间表
Feb 21 PHP
mac环境中使用brew安装php5.5.15
Aug 18 PHP
ThinkPHP表单自动验证实例
Oct 13 PHP
php将字符串随机分割成不同长度数组的方法
Jun 01 PHP
WAMP环境中扩展oracle函数库(oci)
Jun 26 PHP
举例讲解PHP面对对象编程的多态
Aug 12 PHP
基于ThinkPHP+uploadify+upload+PHPExcel 无刷新导入数据
Sep 23 PHP
PHP 中魔术常量的实例详解
Oct 26 PHP
一款简单实用的php操作mysql数据库类
Dec 08 #PHP
php表单敏感字符过滤类
Dec 08 #PHP
php网页病毒清除类
Dec 08 #PHP
ThinkPHP入口文件设置及相关注意事项分析
Dec 05 #PHP
简单实用的PHP防注入类实例
Dec 05 #PHP
ThinkPHP连接数据库的方式汇总
Dec 05 #PHP
PHP生成RSS文件类实例
Dec 05 #PHP
You might like
广播爱好者需要了解的天线知识
2021/03/01 无线电
php中常用的预定义变量小结
2012/05/09 PHP
php实现基于pdo的事务处理方法示例
2017/07/21 PHP
js trim函数 去空格函数与正则集锦
2009/11/20 Javascript
解决jquery的.animate()函数在IE6下的问题
2010/12/03 Javascript
javascript实现超炫的向上滑行菜单实例
2015/08/03 Javascript
js跨域资源共享 基础篇
2016/07/02 Javascript
BooStrap对导航条的改造实践小结
2016/09/21 Javascript
javascript动画之模拟拖拽效果篇
2016/09/26 Javascript
nodejs实例解析(输出hello world)
2017/01/03 NodeJs
原生js实现选项卡功能
2017/03/08 Javascript
Node.js中看JavaScript的引用
2017/04/22 Javascript
Angular实现响应式表单
2017/08/04 Javascript
详解vue.js下引入百度地图jsApi的两种方法
2018/07/27 Javascript
Swiper.js实现移动端元素左右滑动
2019/09/08 Javascript
vue中实现点击变成全屏的多种方法
2020/09/27 Javascript
如何在Express4.x中愉快地使用async的方法
2020/11/18 Javascript
[02:51]DOTA2英雄基础教程 风暴之灵
2013/12/23 DOTA
Python中使用装饰器和元编程实现结构体类实例
2015/01/28 Python
通过Python使用saltstack生成服务器资产清单
2016/03/01 Python
PyQt4实现下拉菜单可供选择并打印出来
2018/04/20 Python
Python3 单行多行万能正则匹配方法
2019/01/07 Python
详解Css3新特性应用之过渡与动画
2017/01/10 HTML / CSS
暑假实习求职信范文
2013/09/22 职场文书
建筑班组长岗位职责
2014/01/02 职场文书
应届毕业生个人求职自荐信
2014/01/06 职场文书
幼儿园义卖活动方案
2014/01/17 职场文书
报效祖国演讲稿
2014/09/15 职场文书
2014银行领导班子群众路线对照检查材料思想汇报
2014/09/17 职场文书
业务员工作态度散漫检讨书
2014/11/02 职场文书
民主评议教师党员自我评价
2015/03/04 职场文书
生产车间主任岗位职责
2015/04/08 职场文书
放假通知
2015/04/14 职场文书
2015年中学校长工作总结
2015/05/19 职场文书
Go语言设计模式之结构型模式
2021/06/22 Golang
详解使用内网穿透工具Ngrok代理本地服务
2022/03/31 Servers