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 相关文章推荐
MYSQL环境变量设置方法
Jan 15 PHP
php数组函数序列 之array_count_values() 统计数组中所有值出现的次数函数
Oct 29 PHP
编写php应用程序实现摘要式身份验证的方法详解
Jun 08 PHP
PHP输出缓存ob系列函数详解
Mar 11 PHP
PHP使用CURL获取302跳转后的地址实例
May 04 PHP
PHP动态柱状图实现方法
Mar 30 PHP
摘自织梦CMS的HTTP文件下载类
Aug 08 PHP
PHP中Enum(枚举)用法实例详解
Dec 07 PHP
php实现word转html的方法
Jan 22 PHP
PHP 以POST方式提交XML、获取XML,解析XML详解及实例
Oct 26 PHP
php获取linux命令结果的实例
Mar 13 PHP
PHP实现的链式队列结构示例
Sep 15 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
初学CAKEPHP 基础教程
2009/11/02 PHP
PHP数组对比函数,存在交集则返回真,否则返回假
2011/02/03 PHP
php继承的一个应用
2011/09/06 PHP
PHP+Ajax实时自动检测是否联网的方法
2015/07/01 PHP
php自动识别文字编码并转换为目标编码的方法
2015/08/08 PHP
php实现登陆模块功能示例
2016/10/20 PHP
php+jQuery ajax实现的实时刷新显示数据功能示例
2019/09/12 PHP
jquery tools 系列 scrollable学习
2009/09/06 Javascript
用js判断页面刷新或关闭的方法(onbeforeunload与onunload事件)
2012/06/22 Javascript
jquery 定位input元素的几种方法小结
2013/07/28 Javascript
巧用jquery解决下拉菜单被Div遮挡的相关问题
2014/02/13 Javascript
微信小程序 触控事件详细介绍
2016/10/17 Javascript
vue.js开发环境安装教程
2017/03/17 Javascript
jQuery实现验证码功能
2017/03/17 Javascript
iscroll动态加载数据完美解决方法
2017/07/18 Javascript
angularjs $http调用接口的方式详解
2018/08/13 Javascript
Vue axios全局拦截 get请求、post请求、配置请求的实例代码
2018/11/28 Javascript
vue 基于element-ui 分页组件封装的实例代码
2018/12/10 Javascript
bootstrap table插件动态加载表头
2019/07/19 Javascript
js实现购物车商品数量加减
2020/09/21 Javascript
JS实现京东商品分类侧边栏
2020/12/11 Javascript
原生js实现移动小球(碰撞检测)
2020/12/17 Javascript
windows下python安装pip图文教程
2018/05/25 Python
Python随机生成身份证号码及校验功能
2018/12/04 Python
python 数据库查询返回list或tuple实例
2020/05/15 Python
Django-imagekit的使用详解
2020/07/06 Python
迪斯尼商品官方网站:ShopDisney
2016/08/01 全球购物
PacSun官网:加州生活方式服装、鞋子和配饰
2018/03/10 全球购物
super关键字的用法
2012/04/10 面试题
什么是Web Service?
2012/07/25 面试题
后勤人员自我鉴定
2013/10/20 职场文书
安全生产检讨书
2014/01/21 职场文书
2014年高考决心书
2014/03/11 职场文书
2015年出纳工作总结与计划
2015/05/18 职场文书
详解Python小数据池和代码块缓存机制
2021/04/07 Python
详解Python中的for循环
2022/04/30 Python